Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект некоторому другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ждать пробуждения, обычно вследствие вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени.

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

isEmpty
Модификатор и тип Метод Описание
default boolean isEmpty()
Возвращает true, если эта последовательность символов пуста.

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

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 и так далее, как при индексации массива.

Аргумент-индекс должен быть больше или равен 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 отрицателен или больше длины этой последовательности, если подстрока, начинающаяся с index, содержит меньше codePointOffset кодовых точек при положительном значении codePointOffset или если подстрока перед index содержит меньше кодовых точек, чем абсолютное значение codePointOffset, при отрицательном значении 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.

Аргумент-индекс должен быть больше или равен 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, 2026, 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.

Spec-Zone.ru

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