Иллюстрированный самоучитель по Java

Класс StringBuffer

Объекты класса StringBuffer – это строки переменной длины. Только что созданный объект имеет буфер определенной емкости (capacity), по умолчанию достаточной для хранения 16 символов. Емкость можно задать в конструкторе объекта.

Как только буфер начинает переполняться, его емкость автоматически увеличивается, чтобы вместить новые символы.

В любое время емкость буфера можно увеличить, обратившись к методу ensureCapacity(int minCapacity).

Этот метод изменит емкость, только если minCapacity будет больше длины хранящейся в объекте строки. Емкость будет увеличена по следующему правилу. Пусть емкость буфера равна N. Тогда новая емкость будет равна:

Мах(2 * N + 2, minCapacity)

Таким образом, емкость буфера нельзя увеличить менее чем вдвое.

Методом setLength (int newLength) можно установить любую длину строки.

Если она окажется больше текущей длины, то дополнительные символы будут равны ' \u0000'. Если она будет меньше текущей длины, то строка будет обрезана, последние символы потеряются, точнее, будут заменены символом '\u0000'. Емкость при этом не изменится.

Если число newLength окажется отрицательным, возникнет исключительная ситуация.

Совет
Будьте осторожны, устанавливая новую длину объекта
.

Количество символов в строке можно узнать, как и для объекта класса String, методом length (), а емкость – методом capacity ().

Создать объект класса stringBuffer можно только конструкторами.

Конструкторы

В классе stringBuffer три конструктора:

  • stringBuffer () – создает пустой объект с емкостью 16 символов;
  • stringBuffer.(int capacity) – создает пустой объект заданной емкости capacity;
  • StringBuffer (String str) – создает объект емкостью str.length () + 16, содержащий строку str.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.