Spec-Zone.ru › OpenJDK 25

Класс StringBuffer

java.lang.Object
java.lang.StringBuffer
Все реализуемые интерфейсы:
Serializable, Appendable, CharSequence, Comparable<StringBuffer>
public final class StringBuffer extends Object implements Appendable, Serializable, Comparable<StringBuffer>, CharSequence
Потокобезопасная изменяемая последовательность символов. Буфер строк похож на String, но его можно изменять. В любой момент времени он содержит определённую последовательность символов, однако длину и содержимое этой последовательности можно изменить с помощью определённых вызовов методов.

Буферы строк безопасны для использования несколькими потоками. При необходимости методы синхронизированы, поэтому все операции с любым конкретным экземпляром выполняются так, как если бы они происходили в некотором последовательном порядке, согласованном с порядком вызовов методов, сделанных каждым из участвующих потоков.

Основные операции над StringBuffer — это методы append и insert, перегруженные таким образом, чтобы принимать данные любого типа. Каждый из них преобразует заданное значение в строку, а затем добавляет или вставляет символы этой строки в буфер строк. Метод append всегда добавляет эти символы в конец буфера; метод insert добавляет символы в указанную позицию.

Например, если z ссылается на объект буфера строк, текущее содержимое которого — "start", то вызов метода z.append("le") приведёт к тому, что буфер строк будет содержать "startle", тогда как z.insert(4, "le") изменит содержимое буфера строк на "starlet".

В общем случае, если sb ссылается на экземпляр StringBuffer, то sb.append(x) имеет тот же эффект, что и sb.insert(sb.length(), x).

При выполнении любой операции с исходной последовательностью (например, добавлении или вставке из исходной последовательности) этот класс синхронизирует только буфер строк, выполняющий операцию, но не исходную последовательность. Обратите внимание: хотя StringBuffer предназначен для безопасного одновременного использования несколькими потоками, если конструктору или операции append либо insert передаётся исходная последовательность, совместно используемая несколькими потоками, вызывающий код должен обеспечить согласованное и неизменное представление исходной последовательности на протяжении всей операции. Этого можно добиться, если вызывающий код удерживает блокировку во время вызова операции, использует неизменяемую исходную последовательность или не разделяет исходную последовательность между потоками.

Каждый буфер строк имеет ёмкость. Пока длина содержащейся в буфере строк последовательности символов не превышает его ёмкость, выделять новый внутренний массив буфера не требуется. При переполнении внутреннего буфера его размер автоматически увеличивается.

Если не указано иное, передача аргумента null конструктору или методу этого класса приведёт к выбрасыванию исключения NullPointerException.

Начиная с выпуска JDK 5, этот класс дополнен эквивалентным классом, предназначенным для использования одним потоком, StringBuilder. Как правило, вместо этого класса следует использовать класс StringBuilder: он поддерживает те же операции, но работает быстрее, поскольку не выполняет синхронизацию.

Примечание к API:
StringBuffer реализует Comparable, но не переопределяет equals. Поэтому естественный порядок объектов StringBuffer несовместим с equals. Следует соблюдать осторожность, если объекты StringBuffer используются в качестве ключей в SortedMap или элементов в SortedSet. Дополнительные сведения см. в документации Comparable, SortedMap или SortedSet.
Начиная с версии:
1.0
См. также:
  • StringBuilder
  • String
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
StringBuffer()
Создаёт буфер строк, не содержащий символов, с начальной ёмкостью 16 символов.
StringBuffer(int capacity)
Создаёт буфер строк, не содержащий символов, с указанной начальной ёмкостью.
StringBuffer(CharSequence seq)
Создаёт буфер строк, содержащий те же символы, что и указанный CharSequence.
StringBuffer(String str)
Создаёт буфер строк, инициализированный содержимым указанной строки.

Краткое описание методов

Модификатор и тип Метод Описание
StringBuffer append(boolean b)
Добавляет к последовательности строковое представление аргумента boolean.
StringBuffer append(char c)
Добавляет к этой последовательности строковое представление аргумента char.
StringBuffer append(char[] str)
Добавляет к этой последовательности строковое представление аргумента — массива char.
StringBuffer append(char[] str, int offset, int len)
Добавляет к этой последовательности строковое представление подмассива из аргумента — массива char.
StringBuffer append(double d)
Добавляет к этой последовательности строковое представление аргумента double.
StringBuffer append(float f)
Добавляет к этой последовательности строковое представление аргумента float.
StringBuffer append(int i)
Добавляет к этой последовательности строковое представление аргумента int.
StringBuffer append(long lng)
Добавляет к этой последовательности строковое представление аргумента long.
StringBuffer append(CharSequence s)
Добавляет к этой последовательности указанный CharSequence.
StringBuffer append(CharSequence s, int start, int end)
Добавляет к этой последовательности подпоследовательность указанного CharSequence.
StringBuffer append(Object obj)
Добавляет строковое представление аргумента Object.
StringBuffer append(String str)
Добавляет указанную строку к этой последовательности символов.
StringBuffer append(StringBuffer sb)
Добавляет к этой последовательности указанный StringBuffer.
StringBuffer appendCodePoint(int codePoint)
Добавляет к этой последовательности строковое представление аргумента codePoint.
int capacity()
Возвращает текущую ёмкость.
char charAt(int index)
Возвращает значение char в этой последовательности по указанному индексу.
IntStream chars()
Возвращает поток значений int, дополняя нулями значения char из этой последовательности.
int codePointAt(int index)
Возвращает символ (кодовую точку Unicode) по указанному индексу.
int codePointBefore(int index)
Возвращает символ (кодовую точку Unicode) перед указанным индексом.
int codePointCount(int beginIndex, int endIndex)
Возвращает количество кодовых точек Unicode в указанном текстовом диапазоне этой последовательности.
IntStream codePoints()
Возвращает поток значений кодовых точек из этой последовательности.
int compareTo(StringBuffer another)
Лексикографически сравнивает два экземпляра StringBuffer.
StringBuffer delete(int start, int end)
Удаляет символы в подстроке этой последовательности.
StringBuffer deleteCharAt(int index)
Удаляет char в указанной позиции этой последовательности.
void ensureCapacity(int minimumCapacity)
Гарантирует, что ёмкость будет не меньше указанного минимального значения.
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой последовательности в указанный массив назначения.
int indexOf(String str)
Возвращает индекс первого вхождения указанной подстроки в этой строке.
int indexOf(String str, int fromIndex)
Возвращает индекс первого вхождения указанной подстроки в этой строке, начиная с указанного индекса.
StringBuffer insert(int offset, boolean b)
Вставляет в эту последовательность строковое представление аргумента boolean.
StringBuffer insert(int offset, char c)
Вставляет в эту последовательность строковое представление аргумента char.
StringBuffer insert(int offset, char[] str)
Вставляет в эту последовательность строковое представление аргумента — массива char.
StringBuffer insert(int index, char[] str, int offset, int len)
Вставляет в эту последовательность строковое представление подмассива из аргумента — массива str.
StringBuffer insert(int offset, double d)
Вставляет в эту последовательность строковое представление аргумента double.
StringBuffer insert(int offset, float f)
Вставляет в эту последовательность строковое представление аргумента float.
StringBuffer insert(int offset, int i)
Вставляет в эту последовательность строковое представление второго аргумента int.
StringBuffer insert(int offset, long l)
Вставляет в эту последовательность строковое представление аргумента long.
StringBuffer insert(int dstOffset, CharSequence s)
Вставляет в эту последовательность указанный CharSequence.
StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
Вставляет в эту последовательность подпоследовательность указанного CharSequence.
StringBuffer insert(int offset, Object obj)
Вставляет в эту последовательность символов строковое представление аргумента Object.
StringBuffer insert(int offset, String str)
Вставляет строку в эту последовательность символов.
int lastIndexOf(String str)
Возвращает индекс последнего вхождения указанной подстроки в этой строке.
int lastIndexOf(String str, int fromIndex)
Возвращает индекс последнего вхождения указанной подстроки в этой строке при поиске в обратном направлении, начиная с указанного индекса.
int length()
Возвращает длину (количество символов).
int offsetByCodePoints(int index, int codePointOffset)
Возвращает индекс в этой последовательности, смещённый относительно заданного index на codePointOffset кодовых точек.
StringBuffer repeat(int codePoint, int count)
Добавляет к этой последовательности count копий строкового представления аргумента codePoint.
StringBuffer repeat(CharSequence cs, int count)
Добавляет к этой последовательности count копий указанного CharSequence cs.
StringBuffer replace(int start, int end, String str)
Заменяет символы в подстроке этой последовательности символами из указанного String.
StringBuffer reverse()
Заменяет эту последовательность символов на обратную последовательность.
void setCharAt(int index, char ch)
Символ по указанному индексу заменяется на ch.
void setLength(int newLength)
Задаёт длину последовательности символов.
CharSequence subSequence(int start, int end)
Возвращает последовательность символов, являющуюся подпоследовательностью этой последовательности.
String substring(int start)
Возвращает String, содержащий подпоследовательность символов, которые в данный момент содержатся в этой последовательности символов.
String substring(int start, int end)
Возвращает String, содержащий подпоследовательность символов, которые в данный момент содержатся в этой последовательности.
String toString()
Возвращает строку, представляющую данные этой последовательности.
void trimToSize()
Пытается уменьшить объём памяти, используемой для хранения последовательности символов.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе CharSequence

chars, codePoints, isEmpty

Подробное описание конструкторов

StringBuffer

public StringBuffer()
Создает буфер строк без символов и с начальной емкостью 16 символов.

StringBuffer

public StringBuffer(int capacity)
Создает буфер строк без символов и с указанной начальной емкостью.
Параметры:
capacity — начальная емкость.
Исключения:
NegativeArraySizeException — если аргумент capacity меньше 0.

StringBuffer

public StringBuffer(String str)
Создает буфер строк, инициализированный содержимым указанной строки. Начальная емкость буфера строк равна 16 плюс длина строкового аргумента.
Параметры:
str — начальное содержимое буфера.

StringBuffer

public StringBuffer(CharSequence seq)
Создает буфер строк, содержащий те же символы, что и указанная CharSequence. Начальная емкость буфера строк равна 16 плюс длина аргумента CharSequence.
Параметры:
seq — последовательность для копирования.
Начиная с версии:
1.5

Подробное описание методов

compareTo

public int compareTo(StringBuffer another)
Лексикографически сравнивает два экземпляра StringBuffer. Этот метод следует тем же правилам лексикографического сравнения, которые определены в методе CharSequence.compare(this, another).

Для более точного сравнения строк с учетом локали см. Collator.

Определено в:
compareTo в интерфейсе Comparable<StringBuffer>
Примечание по реализации:
Этот метод синхронизируется на this, текущем объекте, но не на StringBuffer another, с которым сравнивается this StringBuffer.
Параметры:
another — StringBuffer для сравнения
Возвращает:
значение 0, если этот StringBuffer содержит ту же последовательность символов, что и аргумент StringBuffer; отрицательное целое число, если этот StringBuffer лексикографически меньше аргумента StringBuffer; или положительное целое число, если этот StringBuffer лексикографически больше аргумента StringBuffer.
Начиная с версии:
11

length

public int length()
Возвращает длину (количество символов).
Определено в:
length в интерфейсе CharSequence
Возвращает:
длину последовательности символов, представленной в данный момент этим объектом

capacity

public int capacity()
Возвращает текущую емкость. Емкость — это количество символов, которое может храниться (включая уже записанные символы), прежде чем потребуется выделение памяти.
Возвращает:
текущую емкость

ensureCapacity

public void ensureCapacity(int minimumCapacity)
Гарантирует, что емкость будет не меньше указанного минимального значения. Если текущая емкость меньше аргумента, выделяется новый внутренний массив большей емкости. Новая емкость равна большему из следующих значений:
  • Аргумент minimumCapacity.
  • Удвоенная старая емкость плюс 2.
Если аргумент minimumCapacity неположителен, этот метод не выполняет никаких действий и просто возвращает управление. Обратите внимание: последующие операции с этим объектом могут уменьшить фактическую емкость ниже запрошенного здесь значения.
Параметры:
minimumCapacity — минимальная требуемая емкость.

trimToSize

public void trimToSize()
Пытается сократить объем памяти, используемой для хранения последовательности символов. Если буфер больше, чем необходимо для хранения текущей последовательности символов, его размер может быть уменьшен для более эффективного использования памяти. Вызов этого метода может повлиять на значение, возвращаемое последующим вызовом метода capacity(), но это не гарантируется.
Начиная с версии:
1.5

setLength

public void setLength(int newLength)
Задает длину последовательности символов. Последовательность заменяется новой последовательностью символов длиной, указанной в аргументе. Для каждого неотрицательного индекса k, меньшего newLength, символ с индексом k в новой последовательности символов совпадает с символом с индексом k в старой последовательности, если k меньше длины старой последовательности символов; в противном случае это нулевой символ '\u0000'. Иными словами, если аргумент newLength меньше текущей длины, длина изменяется на указанное значение.

Если аргумент newLength больше или равен текущей длине, добавляется достаточное количество нулевых символов ('\u0000'), чтобы длина стала равна аргументу newLength.

Аргумент newLength должен быть больше или равен 0.

Параметры:
newLength — новая длина
Исключения:
IndexOutOfBoundsException — если аргумент newLength отрицателен.
См. также:
  • length()

charAt

public char charAt(int index)
Возвращает значение char в этой последовательности по указанному индексу. Первое значение char находится по индексу 0, следующее — по индексу 1 и так далее, как при индексировании массива.

Аргумент index должен быть больше или равен 0 и меньше длины этой последовательности.

Если значение char, указанное индексом, является суррогатом, возвращается значение суррогата.

Определено в:
charAt в интерфейсе CharSequence
Параметры:
index — индекс требуемого значения char.
Возвращает:
значение char по указанному индексу.
Исключения:
IndexOutOfBoundsException — если index отрицателен или больше либо равен length().
См. также:
  • length()

codePointAt

public int codePointAt(int index)
Возвращает символ (кодовую точку Unicode) по указанному индексу. Индекс указывает на значения char (кодовые единицы Unicode) и находится в диапазоне от 0 до CharSequence.length() - 1.

Если значение char, указанное по заданному индексу, находится в диапазоне старших суррогатов, следующий индекс меньше длины этой последовательности, а значение char по следующему индексу находится в диапазоне младших суррогатов, возвращается дополнительная кодовая точка, соответствующая этой суррогатной паре. В противном случае возвращается значение char по заданному индексу.

Параметры:
index — индекс значений char
Возвращает:
значение кодовой точки символа по index
Исключения:
IndexOutOfBoundsException — если аргумент index отрицателен или не меньше длины этой последовательности.
Начиная с версии:
1.5

codePointBefore

public int codePointBefore(int index)
Возвращает символ (кодовую точку Unicode) перед указанным индексом. Индекс указывает на значения char (кодовые единицы Unicode) и находится в диапазоне от 1 до CharSequence.length().

Если значение char по индексу (index - 1) находится в диапазоне младших суррогатов, (index - 2) неотрицателен, а значение char по индексу (index - 2) находится в диапазоне старших суррогатов, возвращается значение дополнительной кодовой точки суррогатной пары. Если значение char по индексу index - 1 является непарным младшим или старшим суррогатом, возвращается значение суррогата.

Параметры:
index — индекс, следующий за кодовой точкой, которую требуется вернуть
Возвращает:
значение кодовой точки Unicode перед заданным индексом.
Исключения:
IndexOutOfBoundsException — если аргумент index меньше 1 или больше длины этой последовательности.
Начиная с версии:
1.5

codePointCount

public int codePointCount(int beginIndex, int endIndex)
Возвращает количество кодовых точек Unicode в указанном текстовом диапазоне этой последовательности. Текстовый диапазон начинается с указанного beginIndex и заканчивается char по индексу endIndex - 1. Таким образом, длина текстового диапазона (в charах) равна endIndex-beginIndex. Каждый непарный суррогат в этой последовательности считается одной кодовой точкой.
Параметры:
beginIndex — индекс первого char текстового диапазона.
endIndex — индекс после последнего char текстового диапазона.
Возвращает:
количество кодовых точек Unicode в указанном текстовом диапазоне
Исключения:
IndexOutOfBoundsException — если beginIndex отрицателен, или endIndex больше длины этой последовательности, или beginIndex больше endIndex.
Начиная с версии:
1.5

offsetByCodePoints

public int offsetByCodePoints(int index, int codePointOffset)
Возвращает индекс в этой последовательности, смещенный относительно заданного index на codePointOffset кодовых точек. Каждый непарный суррогат в текстовом диапазоне, заданном значениями index и codePointOffset, считается одной кодовой точкой.
Параметры:
index — индекс, относительно которого выполняется смещение
codePointOffset — смещение в кодовых точках
Возвращает:
индекс в этой последовательности
Исключения:
IndexOutOfBoundsException — если index отрицателен или больше длины этой последовательности, или если codePointOffset положителен и в подпоследовательности, начинающейся с index, меньше codePointOffset кодовых точек, или если codePointOffset отрицателен и в подпоследовательности перед index меньше абсолютного значения codePointOffset кодовых точек.
Начиная с версии:
1.5

getChars

public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой последовательности в указанный массив назначения. Первый копируемый символ находится по индексу srcBegin; последний копируемый символ — по индексу srcEnd-1. Общее количество копируемых символов равно srcEnd-srcBegin. Символы копируются в подмассив dst, начиная с индекса dstBegin и заканчивая индексом:
dstbegin + (srcEnd-srcBegin) - 1
Определено в:
getChars в интерфейсе CharSequence
Параметры:
srcBegin — начать копирование с этого смещения.
srcEnd — прекратить копирование на этом смещении.
dst — массив, в который копируются данные.
dstBegin — смещение в dst.

setCharAt

public void setCharAt(int index, char ch)
Символ по указанному индексу заменяется на ch. Эта последовательность изменяется и становится новой последовательностью символов, идентичной старой, за исключением того, что она содержит символ ch в позиции index.

Аргумент index должен быть больше или равен 0 и меньше длины этой последовательности.

Параметры:
index — индекс изменяемого символа.
ch — новый символ.
Исключения:
IndexOutOfBoundsException — если index отрицателен или больше либо равен length().
См. также:
  • length()

append

public StringBuffer append(Object obj)
Добавляет строковое представление аргумента Object.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(Object), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
obj — объект Object.
Возвращает:
ссылку на этот объект.

append

public StringBuffer append(String str)
Добавляет указанную строку в эту последовательность символов.

Символы аргумента String добавляются по порядку, увеличивая длину этой последовательности на длину аргумента. Если str равен null, добавляются четыре символа "null".

Пусть n — длина этой последовательности символов непосредственно перед выполнением метода append. Тогда символ с индексом k в новой последовательности символов равен символу с индексом k в старой последовательности, если k меньше n; в противном случае он равен символу с индексом k-n в аргументе str.

Параметры:
str — строка.
Возвращает:
ссылку на этот объект.

append

public StringBuffer append(StringBuffer sb)
Добавляет указанную StringBuffer в эту последовательность.

Символы аргумента StringBuffer добавляются по порядку к содержимому этого StringBuffer, увеличивая длину этого StringBuffer на длину аргумента. Если sb равен null, к этому StringBuffer добавляются четыре символа "null".

Пусть n — длина старой последовательности символов, содержащейся в StringBuffer непосредственно перед выполнением метода append. Тогда символ с индексом k в новой последовательности символов равен символу с индексом k в старой последовательности, если k меньше n; в противном случае он равен символу с индексом k-n в аргументе sb.

Этот метод синхронизируется на this, объекте назначения, но не синхронизируется на источнике (sb).

Параметры:
sb — StringBuffer для добавления.
Возвращает:
ссылку на этот объект.
Начиная с версии:
1.4

append

public StringBuffer append(CharSequence s)
Добавляет указанную CharSequence в эту последовательность.

Символы аргумента CharSequence добавляются по порядку, увеличивая длину этой последовательности на длину аргумента.

Результат этого метода в точности совпадает с результатом вызова this.append(s, 0, s.length());

Этот метод синхронизируется на this, объекте назначения, но не синхронизируется на источнике (s).

Если s равен null, добавляются четыре символа "null".

Определено в:
append в интерфейсе Appendable
Параметры:
s — CharSequence для добавления.
Возвращает:
ссылку на этот объект.
Начиная с версии:
1.5

append

public StringBuffer append(CharSequence s, int start, int end)
Добавляет подпоследовательность указанной CharSequence в эту последовательность.

Символы аргумента s, начиная с индекса start, добавляются по порядку к содержимому этой последовательности вплоть до индекса end, не включая его. Длина этой последовательности увеличивается на значение end - start.

Пусть n — длина этой последовательности символов непосредственно перед выполнением метода append. Тогда символ с индексом k в этой последовательности символов становится равен символу с индексом k в этой последовательности, если k меньше n; в противном случае он равен символу с индексом k+start-n в аргументе s.

Если s равен null, этот метод добавляет символы так, как если бы параметр s был последовательностью, содержащей четыре символа "null".

Содержимое не определено, если CharSequence изменяется во время вызова метода или при обращении к CharSequence возникает исключение.

Определено в:
append в интерфейсе Appendable
Параметры:
s — последовательность для добавления.
start — начальный индекс добавляемой подпоследовательности.
end — конечный индекс добавляемой подпоследовательности.
Возвращает:
ссылку на этот объект.
Исключения:
IndexOutOfBoundsException — если start отрицателен, или start больше end, или end больше s.length()
Начиная с версии:
1.5

append

public StringBuffer append(char[] str)
Добавляет в эту последовательность строковое представление аргумента — массива char.

Символы аргумента-массива добавляются по порядку к содержимому этой последовательности. Длина этой последовательности увеличивается на длину аргумента.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(char[]), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
str — добавляемые символы.
Возвращает:
ссылку на этот объект.

append

public StringBuffer append(char[] str, int offset, int len)
Добавляет в эту последовательность строковое представление подмассива аргумента — массива char.

Символы массива char str, начиная с индекса offset, добавляются по порядку к содержимому этой последовательности. Длина этой последовательности увеличивается на значение len.

Результат в точности такой же, как если бы аргументы были преобразованы в строку методом String.valueOf(char[],int,int), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
str — добавляемые символы.
offset — индекс первого добавляемого char.
len — количество добавляемых charов.
Возвращает:
ссылку на этот объект.
Исключения:
IndexOutOfBoundsException — если offset < 0 или len < 0 или offset+len > str.length

append

public StringBuffer append(boolean b)
Добавляет строковое представление аргумента boolean в последовательность.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(boolean), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
b — значение boolean.
Возвращает:
ссылку на этот объект.

append

public StringBuffer append(char c)
Добавляет строковое представление аргумента char в эту последовательность.

Аргумент добавляется к содержимому этой последовательности. Длина этой последовательности увеличивается на 1.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(char), а символ из этой строки затем был appended к этой последовательности символов.

Определено в:
append в интерфейсе Appendable
Параметры:
c — значение char.
Возвращает:
ссылку на этот объект.

append

public StringBuffer append(int i)
Добавляет строковое представление аргумента int в эту последовательность.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(int), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
i — значение int.
Возвращает:
ссылку на этот объект.

appendCodePoint

public StringBuffer appendCodePoint(int codePoint)
Добавляет строковое представление аргумента codePoint в эту последовательность.

Аргумент добавляется к содержимому этой последовательности. Длина этой последовательности увеличивается на Character.charCount(codePoint).

Результат в точности такой же, как если бы аргумент был преобразован в массив char методом Character.toChars(int), а символы этого массива затем были appended к этой последовательности символов.

Параметры:
codePoint — кодовая точка Unicode
Возвращает:
ссылку на этот объект.
Начиная с версии:
1.5

append

public StringBuffer append(long lng)
Добавляет строковое представление аргумента long в эту последовательность.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(long), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
lng — значение long.
Возвращает:
ссылку на этот объект.

append

public StringBuffer append(float f)
Добавляет строковое представление аргумента float в эту последовательность.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(float), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
f — значение float.
Возвращает:
ссылку на этот объект.

append

public StringBuffer append(double d)
Добавляет строковое представление аргумента double в эту последовательность.

Результат в точности такой же, как если бы аргумент был преобразован в строку методом String.valueOf(double), а символы этой строки затем были appended к этой последовательности символов.

Параметры:
d — значение double.
Возвращает:
ссылку на этот объект.

delete

public StringBuffer delete(int start, int end)
Удаляет символы из подстроки этой последовательности. Подстрока начинается с указанного start и продолжается до символа с индексом end - 1 или до конца последовательности, если такого символа нет. Если start равно end, изменения не вносятся.
Параметры:
start — начальный индекс включительно.
end — конечный индекс исключительно.
Возвращает:
этот объект.
Исключения:
StringIndexOutOfBoundsException — если start отрицателен, больше length() или больше end.
Начиная с версии:
1.2

deleteCharAt

public StringBuffer deleteCharAt(int index)
Удаляет char в указанной позиции этой последовательности. Длина последовательности уменьшается на один char.

Примечание. Если символ по указанному индексу является дополнительным символом, этот метод не удаляет символ целиком. Если требуется корректная обработка дополнительных символов, определите количество удаляемых char, вызвав Character.charCount(thisSequence.codePointAt(index)), где thisSequence — эта последовательность.

Параметры:
index — индекс удаляемого char
Возвращает:
Этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если index отрицателен или больше либо равен length().
С версии:
1.2

replace

public StringBuffer replace(int start, int end, String str)
Заменяет символы подстроки этой последовательности символами указанной String. Подстрока начинается с указанного start и продолжается до символа с индексом end - 1 или до конца последовательности, если такого символа нет. Сначала символы подстроки удаляются, а затем указанная String вставляется в start. (При необходимости длина этой последовательности будет увеличена, чтобы вместить указанную строку.)
Параметры:
start — начальный индекс, включительно.
end — конечный индекс, не включительно.
str — строка, заменяющая прежнее содержимое.
Возвращает:
Этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если start отрицателен, больше length() или больше end.
С версии:
1.2

substring

public String substring(int start)
Возвращает String, содержащую подпоследовательность символов, присутствующих в данный момент в этой последовательности символов. Подстрока начинается с указанного индекса и продолжается до конца этой последовательности.
Параметры:
start — начальный индекс, включительно.
Возвращает:
Строку, содержащую указанную подпоследовательность символов.
Выбрасывает:
StringIndexOutOfBoundsException — если start меньше нуля или больше длины этого объекта.
С версии:
1.2

subSequence

public CharSequence subSequence(int start, int end)
Возвращает последовательность символов, являющуюся подпоследовательностью этой последовательности.

Вызов этого метода в форме

sb.subSequence(begin, end)
ведёт себя точно так же, как вызов
sb.substring(begin, end)
Этот метод предоставлен для того, чтобы этот класс мог реализовать интерфейс CharSequence.
Определён в:
subSequence в интерфейсе CharSequence
Параметры:
start — начальный индекс, включительно.
end — конечный индекс, не включительно.
Возвращает:
указанную подпоследовательность.
Выбрасывает:
IndexOutOfBoundsException — если start или end отрицательны, если end больше length() или если start больше end
С версии:
1.4

substring

public String substring(int start, int end)
Возвращает String, содержащую подпоследовательность символов, присутствующих в данный момент в этой последовательности символов. Подстрока начинается с указанного start и продолжается до символа с индексом end - 1.
Параметры:
start — начальный индекс, включительно.
end — конечный индекс, не включительно.
Возвращает:
Строку, содержащую указанную подпоследовательность символов.
Выбрасывает:
StringIndexOutOfBoundsException — если start или end отрицательны либо больше length(), или если start больше end.
С версии:
1.2

insert

public StringBuffer insert(int index, char[] str, int offset, int len)
Вставляет строковое представление подмассива аргумента-массива str в эту последовательность. Подмассив начинается с указанного offset и содержит len char. Символы подмассива вставляются в эту последовательность в позицию, указанную index. Длина этой последовательности увеличивается на len char.
Параметры:
index — позиция, в которую вставляется подмассив.
str — массив char.
offset — индекс первого char во вставляемом подмассиве.
len — количество char во вставляемом подмассиве.
Возвращает:
Этот объект
Выбрасывает:
StringIndexOutOfBoundsException — если index отрицателен или больше length(), либо offset или len отрицательны, либо (offset+len) больше str.length.
С версии:
1.2

insert

public StringBuffer insert(int offset, Object obj)
Вставляет строковое представление аргумента Object в эту последовательность символов.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(Object), а символы этой строки затем были inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
obj — Object.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int offset, String str)
Вставляет строку в эту последовательность символов.

Символы аргумента String по порядку вставляются в эту последовательность по указанному смещению, сдвигая все символы, изначально находившиеся выше этой позиции, и увеличивая длину этой последовательности на длину аргумента. Если str равен null, в эту последовательность вставляются четыре символа "null".

Символ с индексом k в новой последовательности символов равен:

  • символу с индексом k в старой последовательности символов, если k меньше offset
  • символу с индексом k-offset в аргументе str, если k не меньше offset, но меньше offset+str.length()
  • символу с индексом k-str.length() в старой последовательности символов, если k не меньше offset+str.length()

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
str — строка.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int offset, char[] str)
Вставляет строковое представление аргумента-массива char в эту последовательность.

Символы аргумента-массива вставляются в содержимое этой последовательности в позицию, указанную offset. Длина этой последовательности увеличивается на длину аргумента.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(char[]), а символы этой строки затем были inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
str — массив символов.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int dstOffset, CharSequence s)
Вставляет указанную CharSequence в эту последовательность.

Символы аргумента CharSequence по порядку вставляются в эту последовательность по указанному смещению, сдвигая символы, изначально находившиеся выше этой позиции, и увеличивая длину этой последовательности на длину аргумента s.

Результат этого метода полностью совпадает с вызовом метода этого объекта insert(dstOffset, s, 0, s.length()).

Содержимое не определено, если CharSequence изменяется во время вызова метода или при обращении к CharSequence возникает исключение.

Если s равен null, в эту последовательность вставляются четыре символа "null".

Параметры:
dstOffset — смещение.
s — последовательность для вставки
Возвращает:
ссылку на этот объект.
Выбрасывает:
IndexOutOfBoundsException — если смещение недопустимо.
С версии:
1.5

insert

public StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
Вставляет подпоследовательность указанной CharSequence в эту последовательность.

Подпоследовательность аргумента s, задаваемая параметрами start и end, по порядку вставляется в эту последовательность по указанному смещению назначения, сдвигая все символы, изначально находившиеся выше этой позиции. Длина этой последовательности увеличивается на end - start.

Символ с индексом k в этой последовательности становится равен:

  • символу с индексом k в этой последовательности, если k меньше dstOffset
  • символу с индексом k+start-dstOffset в аргументе s, если k больше или равен dstOffset, но меньше dstOffset+end-start
  • символу с индексом k-(end-start) в этой последовательности, если k больше или равен dstOffset+end-start

Аргумент dstOffset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Аргумент start должен быть неотрицательным и не больше end.

Аргумент end должен быть больше или равен start и меньше или равен длине s.

Если s равен null, этот метод вставляет символы так, как если бы параметр s был последовательностью, содержащей четыре символа "null".

Содержимое не определено, если CharSequence изменяется во время вызова метода или при обращении к CharSequence возникает исключение.

Параметры:
dstOffset — смещение в этой последовательности.
s — последовательность для вставки.
start — начальный индекс вставляемой подпоследовательности.
end — конечный индекс вставляемой подпоследовательности.
Возвращает:
ссылку на этот объект.
Выбрасывает:
IndexOutOfBoundsException — если dstOffset отрицателен или больше this.length(), либо start или end отрицательны, либо start больше end или end больше s.length()
С версии:
1.5

insert

public StringBuffer insert(int offset, boolean b)
Вставляет строковое представление аргумента boolean в эту последовательность.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(boolean), а символы этой строки затем были inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
b — boolean.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int offset, char c)
Вставляет строковое представление аргумента char в эту последовательность.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(char), а символ этой строки затем был inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
c — char.
Возвращает:
ссылку на этот объект.
Выбрасывает:
IndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int offset, int i)
Вставляет строковое представление второго аргумента int в эту последовательность.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(int), а символы этой строки затем были inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
i — int.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int offset, long l)
Вставляет строковое представление аргумента long в эту последовательность.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(long), а символы этой строки затем были inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
l — long.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int offset, float f)
Вставляет строковое представление аргумента float в эту последовательность.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(float), а символы этой строки затем были inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
f — float.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

insert

public StringBuffer insert(int offset, double d)
Вставляет строковое представление аргумента double в эту последовательность.

Результат полностью совпадает с тем, как если бы второй аргумент был преобразован в строку методом String.valueOf(double), а символы этой строки затем были inserted в эту последовательность символов по указанному смещению.

Аргумент offset должен быть больше или равен 0 и меньше или равен длине этой последовательности.

Параметры:
offset — смещение.
d — double.
Возвращает:
ссылку на этот объект.
Выбрасывает:
StringIndexOutOfBoundsException — если смещение недопустимо.

indexOf

public int indexOf(String str)
Возвращает индекс первого вхождения указанной подстроки в эту строку.

Возвращённый индекс является наименьшим значением k, для которого:

this.toString().startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Параметры:
str — искомая подстрока.
Возвращает:
индекс первого вхождения указанной подстроки или -1, если таких вхождений нет.
С версии:
1.4

indexOf

public int indexOf(String str, int fromIndex)
Возвращает индекс первого вхождения указанной подстроки в эту строку, начиная с указанного индекса.

Возвращённый индекс является наименьшим значением k, для которого:

    k >= Math.min(fromIndex, this.length()) &&
                  this.toString().startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Параметры:
str — искомая подстрока.
fromIndex — индекс, с которого начинается поиск.
Возвращает:
индекс первого вхождения указанной подстроки, начиная с указанного индекса, или -1, если таких вхождений нет.
С версии:
1.4

lastIndexOf

public int lastIndexOf(String str)
Возвращает индекс последнего вхождения указанной подстроки в эту строку. Считается, что последнее вхождение пустой строки "" находится по индексу this.length().

Возвращённый индекс является наибольшим значением k, для которого:

this.toString().startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Параметры:
str — искомая подстрока.
Возвращает:
индекс последнего вхождения указанной подстроки или -1, если таких вхождений нет.
С версии:
1.4

lastIndexOf

public int lastIndexOf(String str, int fromIndex)
Возвращает индекс последнего вхождения указанной подстроки в эту строку, выполняя поиск в обратном направлении, начиная с указанного индекса.

Возвращённый индекс является наибольшим значением k, для которого:

    k <= Math.min(fromIndex, this.length()) &&
                  this.toString().startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Параметры:
str — искомая подстрока.
fromIndex — индекс, с которого начинается поиск.
Возвращает:
индекс последнего вхождения указанной подстроки при поиске в обратном направлении от указанного индекса или -1, если таких вхождений нет.
С версии:
1.4

reverse

public StringBuffer reverse()
Заменяет эту последовательность символов её обратной последовательностью. Если последовательность содержит суррогатные пары, при обращении они рассматриваются как отдельные символы. Таким образом, порядок старшего и младшего суррогатов никогда не меняется на обратный. Пусть n — длина этой последовательности символов в символах (а не длина в значениях char) непосредственно перед выполнением метода reverse. Тогда символ с индексом k в новой последовательности символов равен символу с индексом n-k-1 в старой последовательности символов.

Обратите внимание, что операция обращения может создать суррогатные пары из младших и старших суррогатов, которые до операции не были парными. Например, обращение строки "\uDC00\uD800" создаёт строку "\uD800\uDC00", являющуюся допустимой суррогатной парой.

Возвращает:
ссылку на этот объект.
С версии:
1.0.2

repeat

public StringBuffer repeat(int codePoint, int count)
Добавляет к этой последовательности count копий строкового представления аргумента codePoint.

Длина этой последовательности увеличивается на произведение count и длины строкового представления.

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

// insert 10 asterisks into the buffer
sb.repeat('*', 10);
Параметры:
codePoint — кодовая точка для добавления
count — количество копий
Возвращает:
ссылку на этот объект.
Выбрасывает:
IllegalArgumentException — если указанная codePoint не является допустимой кодовой точкой Unicode или если count отрицателен.
С версии:
21

repeat

public StringBuffer repeat(CharSequence cs, int count)
Добавляет к этой последовательности count копий указанной CharSequence cs.

Длина этой последовательности увеличивается на произведение count и длины CharSequence.

Если cs равен null, в эту последовательность добавляются четыре повторяющихся символа "null".

Содержимое не определено, если CharSequence изменяется во время вызова метода или при обращении к CharSequence возникает исключение.

Параметры:
cs — CharSequence
count — количество копий
Возвращает:
ссылку на этот объект.
Выбрасывает:
IllegalArgumentException — если count отрицателен
С версии:
21

toString

public String toString()
Возвращает строку, представляющую данные в этой последовательности. Возвращённый объект String содержит последовательность символов, представленную в данный момент этим объектом. Последующие изменения этой последовательности не влияют на содержимое возвращённого объекта String.
Определён в:
toString в интерфейсе CharSequence
Возвращает:
строковое представление этой последовательности символов.

chars

public IntStream chars()
Возвращает поток значений int, расширенных нулями из значений char этой последовательности. Любой символ char, соответствующий суррогатной кодовой точке, передаётся без интерпретации.

Поток связывается с этой последовательностью при запуске терминальной операции потока (в частности, для изменяемых последовательностей сплитератор потока использует позднее связывание). Если во время этой операции последовательность изменяется, результат не определён.

Определён в:
chars в интерфейсе CharSequence
Возвращает:
IntStream значений char из этой последовательности
С версии:
9

codePoints

public IntStream codePoints()
Возвращает поток значений кодовых точек этой последовательности. Любые суррогатные пары, встречающиеся в последовательности, объединяются, как если бы это выполнялось методом Character.toCodePoint, а результат передаётся в поток. Все остальные кодовые единицы, включая обычные символы BMP, непарные суррогаты и неопределённые кодовые единицы, расширяются нулями до значений int, которые затем передаются в поток.

Поток связывается с этой последовательностью при запуске терминальной операции потока (в частности, для изменяемых последовательностей сплитератор потока использует позднее связывание). Если во время этой операции последовательность изменяется, результат не определён.

Определён в:
codePoints в интерфейсе CharSequence
Возвращает:
IntStream кодовых точек Unicode из этой последовательности
С версии:
9

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/StringBuffer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API