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 се широко користи у Јави за представљање текстуалне информације и представља фундаменталну класу за обраду низова.