Junior
Разкажи за класа String в езика за програмиране, който познаваш.
sobes.tech AI
Отговор от AI
В контекста на Java, String е неизменяем клас, който представлява последователност от символи. Обектите String се създават, например, чрез използване на литерали или оператора new.
Характеристики:
- Неизменяемост (Immutability): След създаването на обект
String, съдържанието му не може да бъде променено. Всякакви операции, които изглеждат като модификация на низ (например, конкатенация), всъщност създават нов низ. Това осигурява безопасност при работа с потоци и хеш таблици. - Пул на низове (String pool): За низовите литерали Java 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 широко се използва в Java за представяне на текстова информация и е фундаментален клас за обработка на низове.