Sobes.tech
Junior

Ispričaj o klasi String u programskom jeziku koji poznaješ.

sobes.tech АИ

Одговор од АИ

У контексту Јаве, String је иммутабилна класа која представља низ карактера. Објекти String се креирају, на пример, коришћењем литерала или оператора new.

Карактеристике:

  • Иммутабилност (Immutability): Након креирања објекта String, његово садржај не може се променити. Сваке операције које изгледају као модификација низа (нпр. конкатенација), у ствари креирају нови низ. Ово обезбеђује безбедност при раду са токовима и хеш таблама.
  • Пул низа (String pool): За низове литерале, Јава JVM користи посебну област памћења — пул низа. Ако низ са истим садржајем већ постоји у пулу, JVM користи референцу на постојећи објекат уместо да креира нови. Ово оптимизује коришћење памћења.
  • Пренатоваривање оператора +: Оператор + за низове се користи за конкатенацију.
  • Множство корисних метода: Класа String пружа богат скуп метода за рад са низовима: добијање дужине (.length()), поређење (.equals(), .equalsIgnoreCase()), претрагу подниза (.contains(), .indexOf()), извлачење подниза (.substring()), замену карактера (.replace()), претварање у горњи/доњи регистар (.toUpperCase(), .toLowerCase()), уклањање размаклица (.trim()) и друге.

Примери:

Креирање низа:

// Креирање коришћењем литерала - ставља се у пул низа
String s1 = "Hello";

// Креирање коришћењем new - креира се нови објекат ван пула
String s2 = new String("World");

// Конкатенација низа
String s3 = s1 + " " + s2;

Пример неизменљивости:

String original = "abc";
String modified = original.concat("def"); // Креира се нови низ

// original и даље остаје "abc"
System.out.println(original); // Излаз: abc
// modified - нови низ "abcdef"
System.out.println(modified); // Излаз: abcdef

Важни методи:

String text = "  Example String  ";

// Дужина низа
int length = text.length(); // 18

// Поређење низа
boolean isEqual = text.equals("  Example String  "); // true

// Поређење без узимања у обзир регистар
boolean isEqualIgnoreCase = text.equalsIgnoreCase("  example string  "); // true

// Трагање за поднизом
boolean contains = text.contains("String"); // true
int index = text.indexOf("String"); // 10

// Извлачење подниза
String sub = text.substring(10, 16); // String

// Замена карактера
String replaced = text.replace(" ", "-"); // --Example-String--

// Уклањање размаклица са крајева
String trimmed = text.trim(); // Example String

String се широко користи у Јави за представљање текстуалне информације и представља фундаменталну класу за обраду низова.