Sobes.tech
Junior

Papaskink apie String klasę programavimo kalboje, kurią žinai.

sobes.tech AI

Atsakymas iš AI

Java kontekste, String yra nekintantis klasė, kuri atstovauja simbolių seką. String objektai kuriami, pavyzdžiui, naudojant literatus arba new operatorių:

Ypatybės:

  • Nekintamumas (Immutability): Po String objekto sukūrimo, jo turinys negali būti pakeistas. Bet kokios operacijos, kurios atrodo kaip modifikacija (pavyzdžiui, sujungimas), iš tikrųjų sukuria naują eilutę. Tai užtikrina saugumą dirbant su srautais ir žodynais.
  • Eilutės baseinas (String pool): Java JVM naudoja specialią atminties sritį — eilutės baseiną. Jei eilutė su tokiu pačiu turiniu jau egzistuoja baseine, JVM naudoja nuorodą į esamą objektą vietoj naujo sukūrimo. Tai optimizuoja atminties naudojimą.
  • + operatoriaus perkrovimas: + operatorius naudojamas eilutėms sujungti.
  • Daug naudingų metodų: String klasė siūlo turtingą metodų rinkinį darbui su eilutėmis: ilgį (.length()), palyginimą (.equals(), .equalsIgnoreCase()), paiešką (.contains(), .indexOf()), ištraukimą (.substring()), pakeitimą (.replace()), konvertavimą į didžiąsias/paprastąsias raides (.toUpperCase(), .toLowerCase()), tarpų pašalinimą (.trim()) ir kt.

Pavyzdžiai:

Eilutės kūrimas:

// Naudojant literatūrą — įdedama į eilutės baseiną
String s1 = "Hello";

// Naudojant `new` — sukuriamas naujas objektas už baseino ribų
String s2 = new String("World");

// Eilutės sujungimas
String s3 = s1 + " " + s2;

Nekintamumo pavyzdys:

String original = "abc";
String modified = original.concat("def"); // Sukuriamas naujas eilutė

// original vis dar yra "abc"
System.out.println(original); // Išvestis: abc
// modified - nauja eilutė "abcdef"
System.out.println(modified); // Išvestis: abcdef

Svarbūs metodai:

String text = "  Example String  ";

// Eilutės ilgis
int length = text.length(); // 18

// Eilutės palyginimas
boolean isEqual = text.equals("  Example String  "); // true

// Palyginimas nesvarbu didžiosios/mažosios raidės
boolean isEqualIgnoreCase = text.equalsIgnoreCase("  example string  "); // true

// Subeilutės paieška
boolean contains = text.contains("String"); // true
int index = text.indexOf("String"); // 10

// Subeilutės ištraukimas
String sub = text.substring(10, 16); // String

// Pakeitimas
String replaced = text.replace(" ", "-"); // --Example-String--

// Tarpo pašalinimas
String trimmed = text.trim(); // Example String

String plačiai naudojama Java kalboje — tekstinės informacijos atvaizdavimui ir kaip pagrindinė eilutės apdorojimo klasė.