Spec-Zone.ru › OpenJDK 24

Класс 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, но может быть изменён. В любой момент времени он содержит некоторую определённую последовательность символов, но длина и содержимое этой последовательности могут быть изменены с помощью определённых вызовов методов.

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

Основными операциями над буфером строк являются методы 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)
Символы копируются из этой последовательности в целевой массив символов dst.
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()
Пытается уменьшить объем памяти, используемый для последовательности символов.

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

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

Методы, объявленные в интерфейсе java.lang.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)
Обеспечивает, что ёмкость не меньше указанного минимума. Если текущая ёмкость меньше аргумента, то новый внутренний массив выделяется с большей ёмкостью. Новая ёмкость — это максимальное из:
  • Аргумент.
  • Удвоенной старой ёмкости, плюс 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)
Возвращает символ (кодовый пункт Юникода) по указанному индексу. Индекс относится к значениям char (единицам Юникода) и находится в диапазоне от 0 до CharSequence.length() - 1.

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

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

codePointBefore

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

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

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

codePointCount

public int codePointCount(int beginIndex, int endIndex)
Возвращает количество символов Юникода в указанном текстовом диапазоне этой последовательности. Текстовый диапазон начинается в указанной beginIndex и простирается до char с индексом endIndex - 1. Таким образом, длина (в char) текстового диапазона равна endIndex-beginIndex. Неспаренные суррогаты в этой последовательности считаются по одному символу Юникода.
Параметры:
beginIndex - индекс первой char текстового диапазона.
endIndex - индекс после последнего char текстового диапазона.
Возвращает:
количество символов Юникода в указанном текстовом диапазоне
Исключения:
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)
Символы копируются из этой последовательности в массив символов назначения dst. Первый копируемый символ находится по индексу srcBegin; последний копируемый символ находится по индексу srcEnd-1. Общее количество копируемых символов составляет srcEnd-srcBegin. Символы копируются в подмассив dst, начиная с индекса dstBegin и заканчивая индексом:

 dstbegin + (srcEnd-srcBegin) - 1
 
Параметры:
srcBegin - начать копирование с этого смещения.
srcEnd - остановить копирование на этом смещении.
dst - массив для копирования данных.
dstBegin - смещение в dst.
Исключения:
IndexOutOfBoundsException - если выполняется хотя бы одно из следующих условий:
  • srcBegin отрицательное
  • dstBegin отрицательное
  • аргумент srcBegin больше аргумента srcEnd.
  • srcEnd больше this.length().
  • dstBegin+srcEnd-srcBegin больше dst.length

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 добавляются по порядку, увеличивая длину этой последовательности на длину аргумента.

Результат этого метода точно такой же, как если бы это было вызовом этого.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 к этой последовательности символов.

Parameters:
str - символы, которые нужно добавить.
Returns:
ссылка на этот объект.

append

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

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

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

Parameters:
str - символы, которые нужно добавить.
offset - индекс первого char для добавления.
len - количество char для добавления.
Returns:
ссылка на этот объект.
Throws:
IndexOutOfBoundsException - если offset < 0 или len < 0 или offset+len > str.length

append

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

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

Parameters:
b - a boolean.
Returns:
ссылка на этот объект.

append

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

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

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

Specified by:
append в интерфейсе Appendable
Parameters:
c - a char.
Returns:
ссылка на этот объект.

append

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

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

Parameters:
i - целое число.
Returns:
ссылка на этот объект.

appendCodePoint

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

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

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

Parameters:
codePoint - код Юникода
Returns:
ссылка на этот объект.
Since:
1.5

append

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

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

Parameters:
lng - a long.
Returns:
ссылка на этот объект.

append

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

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

Parameters:
f - a float.
Returns:
ссылка на этот объект.

append

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

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

Parameters:
d - a double.
Returns:
ссылка на этот объект.

delete

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

deleteCharAt

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

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

Parameters:
index - Индекс символа для удаления
Returns:
Этот объект.
Throws:
StringIndexOutOfBoundsException - если index отрицательно или больше или равно length().
Since:
1.2

replace

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

substring

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

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 и меньше или равен длине этой последовательности.

Parameters:
offset - смещение.
b - значение типа boolean.
Returns:
ссылка на этот объект.
Throws:
StringIndexOutOfBoundsException - если смещение недопустимо.

insert

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

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

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

Parameters:
offset - смещение.
c - символ char.
Returns:
ссылка на этот объект.
Throws:
IndexOutOfBoundsException - если смещение недопустимо.

insert

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

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

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

Parameters:
offset - смещение.
i - целое число int.
Returns:
ссылка на этот объект.
Throws:
StringIndexOutOfBoundsException - если смещение недопустимо.

insert

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

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

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

Parameters:
offset - смещение.
l - значение типа long.
Returns:
ссылка на этот объект.
Throws:
StringIndexOutOfBoundsException - если смещение недопустимо.

insert

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

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

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

Parameters:
offset - смещение.
f - значение типа float.
Returns:
ссылка на этот объект.
Throws:
StringIndexOutOfBoundsException - если смещение недопустимо.

insert

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

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

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

Parameters:
offset - смещение.
d - значение типа double.
Returns:
ссылка на этот объект.
Throws:
StringIndexOutOfBoundsException - если смещение недопустимо.

indexOf

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

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


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

indexOf

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

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


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

lastIndexOf

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

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


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

lastIndexOf

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

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


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

reverse

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

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

Returns:
ссылка на этот объект.
Since:
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 не является допустимой кодовой точкой Юникода или если count отрицательное.
С:
21

repeat

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

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

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

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

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

toString

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

chars

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

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

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

codePoints

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

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

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/StringBuffer.html

Spec-Zone.ru

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