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
Stringjeho 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
Stringposkytuje š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ů.