Junior
Porozprávaj mi o triede String v programovacom jazyku, ktorý poznáš.
sobes.tech AI
Odpoveď od AI
V kontexte Javy je String nemenná trieda, ktorá predstavuje sekvenciu znakov. Objekt String sa vytvára napríklad pomocou literálov alebo operátora new.
Charakteristiky:
- Nemennosť (Immutability): Po vytvorení objektu
Stringjeho obsah nie je možné zmeniť. Akékoľvek operácie, ktoré vyzerajú ako modifikácia reťazca (napríklad konkatenácia), v skutočnosti vytvárajú nový reťazec. To zabezpečuje bezpečnosť pri práci s vláknami a hash tabuľkami. - Pool reťazcov (String pool): Pre reťazcové literály Java JVM používa špeciálnu oblasť pamäti — pool reťazcov. Ak reťazec s rovnakým obsahom už existuje v poole, JVM použije odkaz na existujúci objekt namiesto vytvorenia nového. To optimalizuje využitie pamäti.
- Preťaženie operátora
+: Operátor+pre reťazce sa používa na konkatenáciu. - Množstvo užitočných metód: Trieda
Stringposkytuje bohatý súbor metód na prácu s reťazcami: získanie dĺžky (.length()), porovnanie (.equals(),.equalsIgnoreCase()), vyhľadávanie podreťazcov (.contains(),.indexOf()), extrahovanie podreťazca (.substring()), nahradenie znakov (.replace()), prevod na veľké/malé písmená (.toUpperCase(),.toLowerCase()), odstránenie medzier (.trim()) a ďalšie.
Príklady:
Vytvorenie reťazcov:
// Vytvorenie pomocou literálu - umiestni sa do poolu reťazcov
String s1 = "Hello";
// Vytvorenie pomocou new - vytvorí sa nový objekt mimo poolu
String s2 = new String("World");
// Konkatenácia reťazcov
String s3 = s1 + " " + s2;
Príklad nemennosti:
String original = "abc";
String modified = original.concat("def"); // Vytvorí sa nový reťazec
// original zostáva "abc"
System.out.println(original); // Výstup: abc
// modified - nový reťazec "abcdef"
System.out.println(modified); // Výstup: abcdef
Dôležité metódy:
String text = " Example String ";
// Dĺžka reťazca
int length = text.length(); // 18
// Porovnanie reťazcov
boolean isEqual = text.equals(" Example String "); // true
// Porovnanie bez zohľadnenia veľkosti písmen
boolean isEqualIgnoreCase = text.equalsIgnoreCase(" example string "); // true
// Vyhľadávanie podreťazca
boolean contains = text.contains("String"); // true
int index = text.indexOf("String"); // 10
// Vystrihnutie podreťazca
String sub = text.substring(10, 16); // String
// Nahradenie znakov
String replaced = text.replace(" ", "-"); // --Example-String--
// Odstránenie medzier na začiatku a na konci
String trimmed = text.trim(); // Example String
String sa široko používa v Jave na reprezentáciu textových informácií a je základnou triedou pre spracovanie reťazcov.