Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

StringBuilder

Изменяемая строка: удобна, когда текст собирается по частям, особенно в цикле.

Доступно с: Java 5

Синтаксис

public final class StringBuilder implements CharSequence

Примеры

Сборка строки в цикле:

void main() {
    StringBuilder sb = new StringBuilder();
    for (int i = 1; i <= 5; i++) {
        sb.append(i).append(' ');
    }
    IO.println(sb.toString().strip());
}

Результат:

1 2 3 4 5

Другие полезные методы — length(), setCharAt(), replace():

void main() {
    var sb = new StringBuilder("hello world");
    sb.setCharAt(0, 'H');
    sb.replace(6, 11, "Java");
    IO.println(sb);
    IO.println(sb.length());
}

Результат:

Hello Java
10

Примечания

String неизменяем: каждое s = s + x создаёт новую строку, и в длинном цикле это медленно. StringBuilder меняет один и тот же буфер. Для одной строки вне цикла обычная конкатенация + вполне подходит — компилятор оптимизирует её сам.

StringBuilder не потокобезопасен. Старый класс StringBuffer с теми же методами синхронизирован, но медленнее и нужен редко. equals() у StringBuilder сравнивает ссылки, а не содержимое — сравнивайте sb.toString() или используйте compareTo().

См. также

  • StringBuilder.append() — Добавляет значение в конец StringBuilder.
  • StringBuilder.insert() — Вставляет значение в указанную позицию StringBuilder.
  • StringBuilder.reverse() — Переворачивает содержимое StringBuilder задом наперёд.
  • StringBuilder.toString() — Возвращает содержимое StringBuilder как обычную строку String.
  • StringBuilder.deleteCharAt() — Удаляет один символ по индексу. Для диапазона есть delete(start, end).

В учебнике

  • StringBuilder — StringBuilder в Java: изменяемая строка, append, insert, reverse, deleteCharAt, цепочки вызовов и сборка строки в цикле.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.