Класс 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
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
StringBuffer() |
Создаёт буфер строк без символов и с начальной ёмкостью 16 символов. |
StringBuffer |
Создаёт буфер строк без символов и с указанной начальной ёмкостью. |
StringBuffer |
Создаёт буфер строк, содержащий те же символы, что и указанный CharSequence. |
StringBuffer |
Создаёт буфер строк, инициализированный содержимым указанной строки. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
StringBuffer |
append |
Добавляет к последовательности строковое представление аргумента boolean. |
StringBuffer |
append |
Добавляет к этой последовательности строковое представление аргумента char. |
StringBuffer |
append |
Добавляет к этой последовательности строковое представление аргумента-массива char. |
StringBuffer |
append |
Добавляет к этой последовательности строковое представление подмассива аргумента-массива char. |
StringBuffer |
append |
Добавляет к этой последовательности строковое представление аргумента double. |
StringBuffer |
append |
Добавляет к этой последовательности строковое представление аргумента float. |
StringBuffer |
append |
Добавляет к этой последовательности строковое представление аргумента int. |
StringBuffer |
append |
Добавляет к этой последовательности строковое представление аргумента long. |
StringBuffer |
append |
Добавляет к этой последовательности указанный CharSequence. |
StringBuffer |
append |
Добавляет к этой последовательности подпоследовательность указанного CharSequence. |
StringBuffer |
append |
Добавляет строковое представление аргумента Object. |
StringBuffer |
append |
Добавляет указанную строку к этой последовательности символов. |
StringBuffer |
append |
Добавляет к этой последовательности указанный StringBuffer. |
StringBuffer |
appendCodePoint |
Добавляет к этой последовательности строковое представление аргумента codePoint. |
int |
capacity() |
Возвращает текущую ёмкость. |
char |
charAt |
Возвращает значение char в этой последовательности по указанному индексу. |
IntStream |
chars() |
Возвращает поток значений int, дополняя нулями значения char этой последовательности. |
int |
codePointAt |
Возвращает символ (кодовую точку Unicode) по указанному индексу. |
int |
codePointBefore |
Возвращает символ (кодовую точку Unicode), расположенный перед указанным индексом. |
int |
codePointCount |
Возвращает количество кодовых точек Unicode в указанном текстовом диапазоне этой последовательности. |
IntStream |
codePoints() |
Возвращает поток значений кодовых точек из этой последовательности. |
int |
compareTo |
Сравнивает два экземпляра StringBuffer в лексикографическом порядке. |
StringBuffer |
delete |
Удаляет символы из подстроки этой последовательности. |
StringBuffer |
deleteCharAt |
Удаляет char в указанной позиции этой последовательности. |
void |
ensureCapacity |
Гарантирует, что ёмкость будет не меньше указанного минимального значения. |
void |
getChars |
Копирует символы из этой последовательности в указанный массив назначения. |
int |
indexOf |
Возвращает индекс первого вхождения указанной подстроки в этой строке. |
int |
indexOf |
Возвращает индекс первого вхождения указанной подстроки в этой строке, начиная с указанного индекса. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление аргумента boolean. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление аргумента char. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление аргумента-массива char. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление подмассива аргумента-массива str. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление аргумента double. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление аргумента float. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление второго аргумента int. |
StringBuffer |
insert |
Вставляет в эту последовательность строковое представление аргумента long. |
StringBuffer |
insert |
Вставляет в эту последовательность указанный CharSequence. |
StringBuffer |
insert |
Вставляет в эту последовательность подпоследовательность указанного CharSequence. |
StringBuffer |
insert |
Вставляет в эту последовательность символов строковое представление аргумента Object. |
StringBuffer |
insert |
Вставляет строку в эту последовательность символов. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанной подстроки в этой строке. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанной подстроки в этой строке при поиске в обратном направлении, начиная с указанного индекса. |
int |
length() |
Возвращает длину (количество символов). |
int |
offsetByCodePoints |
Возвращает индекс в этой последовательности, смещённый относительно заданного index на codePointOffset кодовых точек. |
StringBuffer |
repeat |
Повторяет count копий строкового представления аргумента codePoint в этой последовательности. |
StringBuffer |
repeat |
Добавляет к этой последовательности count копий указанного CharSequence cs. |
StringBuffer |
replace |
Заменяет символы подстроки этой последовательности символами указанного String. |
StringBuffer |
reverse() |
Заменяет эту последовательность символов её обратной последовательностью. |
void |
setCharAt |
Символу по указанному индексу присваивается значение ch. |
void |
setLength |
Задаёт длину последовательности символов. |
CharSequence |
subSequence |
Возвращает последовательность символов, являющуюся подпоследовательностью этой последовательности. |
String |
substring |
Возвращает String, содержащий подпоследовательность символов, которые в данный момент находятся в этой последовательности символов. |
String |
substring |
Возвращает String, содержащий подпоследовательность символов, которые в данный момент находятся в этой последовательности. |
String |
toString() |
Возвращает строку, представляющую данные в этой последовательности. |
void |
trimToSize() |
Пытается сократить объём памяти, используемой для хранения последовательности символов. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект некоторому другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ждать пробуждения, обычно вследствие вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Методы, объявленные в интерфейсе CharSequence
isEmpty | Модификатор и тип | Метод | Описание |
|---|---|---|
default boolean |
isEmpty() |
Возвращает true, если эта последовательность символов пуста. |
Подробное описание конструкторов
StringBuffer
public StringBuffer()
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)
newLength, символ с индексом k в новой последовательности совпадает с символом с индексом k в старой последовательности, если k меньше длины старой последовательности символов; в противном случае это нулевой символ '\u0000'. Иными словами, если аргумент newLength меньше текущей длины, длина изменяется на указанную. Если аргумент newLength больше или равен текущей длине, добавляется необходимое количество нулевых символов ('\u0000'), чтобы длина стала равна аргументу newLength.
Аргумент newLength должен быть больше или равен 0.
- Параметры:
-
newLength— новая длина - Исключения:
-
IndexOutOfBoundsException— если аргументnewLengthотрицателен. - См. также:
charAt
public char charAt(int index)
char в этой последовательности по указанному индексу. Первое значение char находится по индексу 0, следующее — по индексу 1 и так далее, как при индексации массива. Аргумент-индекс должен быть больше или равен 0 и меньше длины этой последовательности.
Если значение char, указанное индексом, является суррогатом, возвращается значение суррогата.
- Определено в:
-
charAtв интерфейсеCharSequence - Параметры:
-
index— индекс нужного значенияchar. - Возвращает:
- значение
charпо указанному индексу. - Исключения:
-
IndexOutOfBoundsException— еслиindexотрицателен или больше либо равенlength(). - См. также:
codePointAt
public int codePointAt(int index)
char (кодовым единицам Unicode) и находится в диапазоне от 0 до CharSequence.length() - 1. Если значение char по указанному индексу входит в диапазон старших суррогатов, следующий индекс меньше длины этой последовательности, а значение char по следующему индексу входит в диапазон младших суррогатов, возвращается соответствующая этой суррогатной паре дополнительная кодовая точка. В противном случае возвращается значение char по указанному индексу.
- Параметры:
-
index— индекс значенийchar - Возвращает:
- значение кодовой точки символа по индексу
index - Исключения:
-
IndexOutOfBoundsException— если аргументindexотрицателен или не меньше длины этой последовательности. - Начиная с версии:
- 1.5
codePointBefore
public int codePointBefore(int index)
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)
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(). - См. также:
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()
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()
int, которые затем передаются в поток. Поток привязывается к этой последовательности при запуске терминальной операции потока (в частности, для изменяемых последовательностей сплитератор потока использует отложенную привязку). Если последовательность изменяется во время этой операции, результат не определен.
- Определено в:
-
codePointsв интерфейсеCharSequence - Возвращает:
- IntStream кодовых точек Unicode из этой последовательности
- С версии:
- 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.