Sobes.tech
Junior

Pověz mi o třídě String v programovacím jazyce, který znáš.

sobes.tech AI

Odpověď od AI

V kontextu Java je String nemměnná třída, která představuje posloupnost znaků. Objekt String je například vytvářen pomocí literálů nebo operátoru new.

Vlastnosti:

  • Neměnnost: Po vytvoření objektu String jeho obsah nelze změnit. Jakákoli operace, která se zdá být modifikací řetězce (například spojování), ve skutečnosti vytvoří nový řetězec. To zajišťuje bezpečnost při práci s vlákny a hash tabulkami.
  • Pool řetězců: Pro literály řetězců používá JVM speciální oblast paměti nazývanou pool řetězců. Pokud již v poolu existuje řetězec se stejným obsahem, JVM použije odkaz na tento objekt místo vytváření nového. To optimalizuje využití paměti.
  • Přetížení operátoru +: Operátor + pro řetězce se používá pro spojování.
  • Mnoho užitečných metod: Třída String poskytuje širokou škálu metod pro práci s řetězci: získání délky (.length()), porovnání (.equals(), .equalsIgnoreCase()), hledání podřetězců (.contains(), .indexOf()), extrakci podřetězců (.substring()), nahrazení znaků (.replace()), převod na velká/malá písmena (.toUpperCase(), .toLowerCase()), odstranění mezer (.trim()) a další.

Příklady:

Vytváření řetězců:

// Vytvoření pomocí literálu - umístěno do poolu řetězců
String s1 = "Hello";

// Vytvoření pomocí new - vytvoří se nový objekt mimo pool
String s2 = new String("World");

// Spojení řetězců
String s3 = s1 + " " + s2;

Příklad neměnnosti:

String původní = "abc";
String upravené = původní.concat("def"); // Vytvoří se nový řetězec

// původní je stále "abc"
System.out.println(původní); // Výstup: abc
// upravené - nový řetězec "abcdef"
System.out.println(upravené); // Výstup: abcdef

Důležité metody:

String text = "  Example String  ";

// Délka řetězce
int délka = text.length(); // 18

// Porovnání řetězců
boolean jeEkvivalentní = text.equals("  Example String  "); // true

// Porovnání bez ohledu na velikost písmen
boolean jeEkvivalentníIgnoreCase = text.equalsIgnoreCase("  example string  "); // true

// Vyhledání podřetězce
boolean obsahuje = text.contains("String"); // true
int index = text.indexOf("String"); // 10

// Vytažení podřetězce
String podřetězec = text.substring(10, 16); // String

// Nahrazení znaků
String nahrazeno = text.replace(" ", "-"); // --Example-String--

// Odstranění mezer na začátku a na konci
String očištěno = text.trim(); // Example String

String je široce používán v Javě k reprezentaci textových informací a je základní třídou pro zpracování řetězců.