База знаний Бинариум

Строки в Java: String, StringBuilder и полезные методы

Строки в Java

Строки — самый частый тип данных в любой программе: имена, адреса, сообщения, JSON. В Java у них есть особенности, которые удивляют новичков. Разбираем главное.

Б

Редакция Бинариума

Пишем о профессиях в дизайне, BIM и IT · 6 минут чтения

Строки неизменяемы

Объект String нельзя изменить после создания. Любой метод, который «меняет» строку, на самом деле возвращает новую.

String s = "java";
s.toUpperCase();       // s по-прежнему "java"
s = s.toUpperCase();   // теперь s = "JAVA"

Неизменяемость делает строки безопасными: их можно передавать куда угодно, не боясь, что кто-то их испортит.

Методы на каждый день

МетодЧто делает
length()Длина строки
trim(), strip()Убирает пробелы по краям
toLowerCase(), toUpperCase()Меняет регистр
contains("x")Есть ли подстрока
substring(a, b)Часть строки
replace("a", "b")Замена
split(",")Разделение в массив
isBlank()Пустая или из пробелов
String.format(...)Подстановка значений в шаблон
String line = "Анна,Казань,29";
String[] parts = line.split(",");
String msg = String.format("%s из города %s", parts[0], parts[1]);

Курс Бинариума

Java-разработчик с нуля — строки, коллекции и практика

Подробнее

StringBuilder

Если склеивать строки в цикле через +, Java каждый раз создаёт новую строку. На тысячах итераций это заметно замедляет программу. StringBuilder изменяемый и работает быстрее.

StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++) {
  sb.append(i).append(" ");
}
String result = sb.toString(); // "1 2 3 4 5 "

Типичные ошибки

  • Сравнение через ==. Сравнивает ссылки, а не содержимое. Используйте equals или equalsIgnoreCase.
  • Забыть присвоить результат метода — строка не изменится.
  • Вызов метода у null — NullPointerException. Безопаснее писать "текст".equals(value).
  • Склейка в большом цикле через + вместо StringBuilder.

Главное

  • String неизменяем: методы возвращают новые строки.
  • Самые нужные методы: split, substring, replace, trim, format.
  • Для склейки в циклах используйте StringBuilder.
  • Строки сравнивают через equals.

Частые вопросы

Чем StringBuilder отличается от StringBuffer?

StringBuffer потокобезопасен, но медленнее. В обычном коде используют StringBuilder.

Как проверить, что строка пустая?

isEmpty() — если длина равна нулю, isBlank() — если строка пустая или состоит только из пробелов.

Курс Бинариума

Java-разработчик с нуля

Основы языка, ООП и проект для портфолио — с практикой на каждой неделе.

  • 11 недель обучения
  • 10+ практических работ
  • Проект на GitHub
11.11.2026
Читайте также