Назад к вопросам
Junior
70
questionbank
Расскажи о классе String в языке программирования, который ты знаешь.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech 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 для представления текстовой информации и является фундаментальным классом для обработки строк.