Sobes.tech
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 String jeho 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 String poskytuje 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.