Класс StringBuffer
- java.lang.Object
-
- java.lang.StringBuffer
- Все реализованные интерфейсы:
-
Serializable,Appendable,CharSequence,Comparable<StringBuffer>
public final class StringBuffer extends Object implements Serializable, Comparable<StringBuffer>, CharSequence
Потокобезопасная, изменяемая последовательность символов. Буфер строк похож на String, но может быть изменён. В любой момент времени он содержит определённую последовательность символов, но длина и содержимое последовательности могут быть изменены с помощью определённых вызовов методов.
Буферы строк безопасны для использования в нескольких потоках. Методы синхронизированы там, где это необходимо, чтобы все операции с любым конкретным экземпляром вели себя так, как если бы они происходили в некотором последовательном порядке, согласованном с порядком вызовов методов каждым из участвующих потоков.
Основные операции с буфером строк — это методы append и insert, которые перегружены для приема данных любого типа. Каждый из них фактически преобразует заданный элемент данных в строку, а затем добавляет или вставляет символы этой строки в буфер строк. Метод append всегда добавляет эти символы в конец буфера; метод insert добавляет символы в указанную точку.
Например, если z ссылается на объект буфера строк, текущее содержимое которого "start", то вызов метода z.append("le") приведет к тому, что буфер строк будет содержать "startle", в то время как z.insert(4, "le") изменит буфер строк на "starlet".
В общем случае, если sb ссылается на экземпляр буфера строк, тогда sb.append(x) имеет тот же эффект, что и sb.insert(sb.length(), x).
Всякий раз, когда выполняется операция, связанная с исходной последовательностью (такая как добавление или вставка из исходной последовательности), этот класс синхронизируется только с буфером строк, выполняющим операцию, а не с исходной последовательностью. Обратите внимание, что, хотя буфер строк предназначен для безопасного использования в нескольких потоках, если конструктор или операция 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) | Создаёт буфер строк, содержащий те же символы, что и указанный |
StringBuffer(String str) | Создаёт буфер строк, инициализированный содержимым указанной строки. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
StringBuffer | append(boolean b) | Добавляет строковое представление аргумента |
StringBuffer | append(char c) | Добавляет строковое представление аргумента |
StringBuffer | append(char[] str) | Добавляет строковое представление аргумента массива |
StringBuffer | append(char[] str,
int offset,
int len) | Добавляет строковое представление подмассива аргумента массива |
StringBuffer | append(double d) | Добавляет строковое представление аргумента |
StringBuffer | append(float f) | Добавляет строковое представление аргумента |
StringBuffer | append(int i) | Добавляет строковое представление аргумента |
StringBuffer | append(long lng) | Добавляет строковое представление аргумента |
StringBuffer | append(CharSequence s) | Добавляет указанный |
StringBuffer | append(CharSequence s,
int start,
int end) | Добавляет подпоследовательность указанного |
StringBuffer | append(Object obj) | Добавляет строковое представление аргумента |
StringBuffer | append(String str) | Добавляет указанную строку в эту последовательность символов. |
StringBuffer | append(StringBuffer sb) | Добавляет указанный |
StringBuffer | appendCodePoint(int codePoint) | Добавляет строковое представление аргумента |
int | capacity() | Возвращает текущую вместимость. |
char | charAt(int index) | Возвращает значение |
IntStream | chars() | Возвращает поток значений |
int | codePointAt(int index) | Возвращает символ (код Юникода) по указанному индексу. |
int | codePointBefore(int index) | Возвращает символ (код Юникода) перед указанным индексом. |
int | codePointCount(int beginIndex,
int endIndex) | Возвращает количество кодов Юникода в указанном текстовом диапазоне этой последовательности. |
IntStream | codePoints() | Возвращает поток значений кодов символов из этой последовательности. |
int | compareTo(StringBuffer another) | Сравнивает два экземпляра |
StringBuffer | delete(int start,
int end) | Удаляет символы в подстроке этой последовательности. |
StringBuffer | deleteCharAt(int index) | Удаляет |
void | ensureCapacity(int minimumCapacity) | Обеспечивает, что вместимость не меньше заданного минимума. |
void | getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin) | Символы копируются из этой последовательности в целевой массив символов |
int | indexOf(String str) | Возвращает индекс в этой строке первой встречи указанной подстроки. |
int | indexOf(String str,
int fromIndex) | Возвращает индекс в этой строке первой встречи указанной подстроки, начиная с указанного индекса. |
StringBuffer | insert(int offset,
boolean b) | Вставляет строковое представление аргумента |
StringBuffer | insert(int offset,
char c) | Вставляет строковое представление аргумента |
StringBuffer | insert(int offset,
char[] str) | Вставляет строковое представление аргумента массива |
StringBuffer | insert(int index,
char[] str,
int offset,
int len) | Вставляет строковое представление подмассива аргумента массива |
StringBuffer | insert(int offset,
double d) | Вставляет строковое представление аргумента |
StringBuffer | insert(int offset,
float f) | Вставляет строковое представление аргумента |
StringBuffer | insert(int offset,
int i) | Вставляет строковое представление второго аргумента |
StringBuffer | insert(int offset,
long l) | Вставляет строковое представление аргумента |
StringBuffer | insert(int dstOffset,
CharSequence s) | Вставляет указанный |
StringBuffer | insert(int dstOffset,
CharSequence s,
int start,
int end) | Вставляет подпоследовательность указанного |
StringBuffer | insert(int offset,
Object obj) | Вставляет строковое представление аргумента |
StringBuffer | insert(int offset,
String str) | Вставляет строку в эту последовательность символов. |
int | lastIndexOf(String str) | Возвращает индекс в этой строке последнего вхождения указанной подстроки. |
int | lastIndexOf(String str,
int fromIndex) | Возвращает индекс в этой строке последнего вхождения указанной подстроки, выполняя обратный поиск, начиная с указанного индекса. |
int | offsetByCodePoints(int index,
int codePointOffset) | Возвращает индекс в этой последовательности, смещённый от заданного |
StringBuffer | replace(int start,
int end,
String str) | Заменяет символы в подстроке этой последовательности символами в указанном |
StringBuffer | reverse() | Заменяет эту последовательность символов обратной последовательностью. |
void | setCharAt(int index,
char ch) | Символ по указанному индексу устанавливается в |
void | setLength(int newLength) | Устанавливает длину последовательности символов. |
CharSequence | subSequence(int start,
int end) | Возвращает новую последовательность символов, являющуюся подпоследовательностью этой последовательности. |
String | substring(int start) | Возвращает новый |
String | substring(int start,
int end) | Возвращает новый |
void | trimToSize() | Попытка уменьшить используемое хранилище для последовательности символов. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе java.lang.CharSequence
chars, codePoints, length, toString Конструкторы
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)
Создаёт буфер строки, содержащий те же символы, что и указанная последовательность. Начальная ёмкость буфера строки равна 16 плюс длина аргумента CharSequence.
Если длина указанной последовательности CharSequence меньше или равна нулю, возвращается пустой буфер ёмкостью 16.
- Параметры:
-
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
capacity
public int capacity()
Возвращает текущую емкость. Емкость — это объем памяти, доступный для новых вставленных символов, после которого произойдет выделение памяти.
- Возвращает:
- текущую емкость
ensureCapacity
public void ensureCapacity(int minimumCapacity)
Обеспечивает, что емкость равна или больше указанного минимума. Если текущая емкость меньше аргумента, то выделяется новый внутренний массив с большей емкостью. Новая емкость — это максимальное из следующих значений:
- Значение аргумента
minimumCapacity. - Удвоенная старая емкость плюс
2.
minimumCapacity неположительный, этот метод ничего не делает и просто возвращает значение. Обратите внимание, что последующие операции с этим объектом могут уменьшить фактическую емкость ниже запрошенной здесь. - Параметры:
-
minimumCapacity- минимальная желаемая емкость.
trimToSize
public void trimToSize()
Попытка сократить используемое хранилище для последовательности символов. Если буфер больше, чем необходимо для хранения текущей последовательности символов, то он может быть изменен, чтобы стать более эффективным в плане использования памяти. Вызов этого метода может, но не обязан, повлиять на значение, возвращаемое последующим вызовом метода capacity().
- С:
- 1.5
setLength
public void setLength(int newLength)
Устанавливает длину последовательности символов. Последовательность изменяется на новую последовательность символов, длина которой задается аргументом. Для каждого неотрицательного индекса k, меньшего newLength, символ с индексом k в новой последовательности символов такой же, как символ с индексом k в старой последовательности, если k меньше длины старой последовательности символов; в противном случае это нулевой символ '\u0000'. Другими словами, если аргумент newLength меньше текущей длины, длина изменяется на заданную длину.
Если аргумент newLength больше или равен текущей длине, добавляется достаточно нулевых символов ('\u0000'), чтобы длина стала равна аргументу newLength.
Аргумент newLength должен быть больше или равен 0.
- Параметры:
-
newLength- новая длина - Исключения:
-
IndexOutOfBoundsException- если аргументnewLengthотрицательный. - См. также:
CharSequence.length()
charAt
public char charAt(int index)
Возвращает значение char в этой последовательности по указанному индексу. Первый символ char находится по индексу 0, следующий — по индексу 1, и так далее, как и при индексировании массива.
Аргумент индекса должен быть больше или равен 0, и меньше длины этой последовательности.
Если значение char символа, указанное индексом, является замещающим, возвращается значение замещающего символа.
- Определено в:
-
charAtв интерфейсеCharSequence - Параметры:
-
index- индекс искомого значенияchar. - Возвращает:
- значение
charпо указанному индексу. - Исключения:
-
IndexOutOfBoundsException- еслиindexотрицательное или больше или равноlength(). - См. также:
CharSequence.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. Таким образом, длина (в chars) текстового диапазона равна 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(). - См. также:
CharSequence.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 добавляются в порядке возрастания к содержимому этой последовательности, увеличивая длину этой последовательности на длину аргумента. Если sb равно null, то к этой последовательности добавляются четыре символа "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".
- Унаследовано от:
-
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- индекс первого символа для добавления. -
len- количество символов для добавления. - Возвращает:
- ссылку на этот объект.
- Исключения:
-
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- символ. - Возвращает:
- ссылку на этот объект.
append
public StringBuffer append(int i)
Добавляет строковое представление аргумента int к этой последовательности.
Общий эффект точно такой же, как если бы аргумент был преобразован в строку методом String.valueOf(int), а символы этой строки были затем appended в эту последовательность символов.
- Параметры:
-
i- целое число. - Возвращает:
- ссылку на этот объект.
appendCodePoint
public StringBuffer appendCodePoint(int codePoint)
Добавляет строковое представление аргумента codePoint к этой последовательности.
Аргумент добавляется в содержимое этой последовательности. Длина этой последовательности увеличивается на Character.charCount(codePoint).
Общий эффект точно такой же, как если бы аргумент был преобразован в массив символов методом Character.toChars(int), а символы в этом массиве были затем appended в эту последовательность символов.
- Параметры:
-
codePoint- кодовое значение Юникода - Возвращает:
- ссылку на этот объект.
- См.:
- 1.5
append
public StringBuffer append(long lng)
Добавляет строковое представление аргумента long в эту последовательность.
Общий эффект эквивалентен тому, как будто аргумент преобразуется в строку методом String.valueOf(long), а затем символы этой строки добавляются appended в эту последовательность символов.
- Parameters:
-
lng- along. - Returns:
- ссылка на этот объект.
append
public StringBuffer append(float f)
Добавляет строковое представление аргумента float в эту последовательность.
Общий эффект эквивалентен тому, как будто аргумент преобразуется в строку методом String.valueOf(float), а затем символы этой строки добавляются appended в эту последовательность символов.
- Parameters:
-
f- afloat. - Returns:
- ссылка на этот объект.
append
public StringBuffer append(double d)
Добавляет строковое представление аргумента double в эту последовательность.
Общий эффект эквивалентен тому, как будто аргумент преобразуется в строку методом String.valueOf(double), а затем символы этой строки добавляются appended в эту последовательность символов.
- Parameters:
-
d- adouble. - 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) Заменяет символы в подстроке этой последовательности символами в указанной строке. Подстрока начинается с указанного start и продолжается до символа с индексом end - 1 или до конца последовательности, если такого символа нет. Сначала символы в подстроке удаляются, а затем указанная строка вставляется в позицию start. (Если необходимо, эта последовательность будет расширена для размещения указанной строки).
- Parameters:
-
start- Начальный индекс (включительно). -
end- Конечный индекс (исключительно). -
str- Строка, которая заменит предыдущее содержимое. - Returns:
- Этот объект.
- Throws:
-
StringIndexOutOfBoundsException- еслиstartотрицательно, большеlength(), или большеend. - Since:
- 1.2
substring
public String substring(int start)
Возвращает новую строку, содержащую подпоследовательность символов, в настоящее время содержащихся в этой последовательности символов. Подстрока начинается в указанном индексе и продолжается до конца этой последовательности.
- Parameters:
-
start- Начальный индекс (включительно). - Returns:
- Новая строка.
- Throws:
-
StringIndexOutOfBoundsException- еслиstartменьше нуля или больше длины этого объекта. - Since:
- 1.2
subSequence
public CharSequence subSequence(int start,
int end) Возвращает новую последовательность символов, которая является подпоследовательностью этой последовательности.
Вызов этого метода в форме
sb.subSequence(begin, end)ведет себя точно так же, как вызов
sb.substring(begin, end). Этот метод предоставлен для того, чтобы этот класс мог реализовать интерфейс
CharSequence.- Specified by:
-
subSequenceв интерфейсеCharSequence - Parameters:
-
start- начальный индекс, включительно. -
end- конечный индекс, исключая. - Returns:
- указанная подпоследовательность.
- Throws:
-
IndexOutOfBoundsException- еслиstartилиendотрицательны, еслиendбольшеlength(), или еслиstartбольшеend - Since:
- 1.4
substring
public String substring(int start,
int end) Возвращает новую строку, содержащую подпоследовательность символов, в настоящее время содержащихся в этой последовательности. Подстрока начинается в указанном start и заканчивается символом с индексом end - 1.
- Parameters:
-
start- Начальный индекс (включительно). -
end- Конечный индекс (исключительно). - Returns:
- Новая строка.
- Throws:
-
StringIndexOutOfBoundsException- еслиstartилиendотрицательны или большеlength(), илиstartбольшеend. - Since:
- 1.2
insert
public StringBuffer insert(int index,
char[] str,
int offset,
int len) Вставляет строковое представление подмассива аргумента массива str в эту последовательность. Подмассив начинается с указанного offset и охватывает len char символов. Символы подмассива вставляются в эту последовательность в позиции, указанной index. Длина этой последовательности увеличивается на len char символов.
- Parameters:
-
index- позиция вставки подмассива. -
str- Массивchar. -
offset- индекс первого символа в подмассиве для вставки. -
len- количество символов в подмассиве для вставки. - Returns:
- Этот объект
- Throws:
-
StringIndexOutOfBoundsException- еслиindexотрицательно или большеlength(), илиoffsetилиlenотрицательны, или(offset+len)большеstr.length. - Since:
- 1.2
insert
public StringBuffer insert(int offset,
Object obj) Вставляет строковое представление аргумента Object в эту последовательность символов.
Общий эффект эквивалентен тому, как будто второй аргумент преобразуется в строку методом String.valueOf(Object), а затем символы этой строки вставляются inserted в эту последовательность символов в указанном смещении.
Аргумент offset должен быть больше или равен 0, и меньше или равен длине этой последовательности.
- Parameters:
-
offset- смещение. -
obj- объектObject. - Returns:
- ссылка на этот объект.
- Throws:
-
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, и меньше или равен длине этой последовательности.
- Parameters:
-
offset- смещение. -
str- строка. - Returns:
- ссылка на этот объект.
- Throws:
-
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()) этого объекта.
Если 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".
- Параметры:
-
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- логическое значение. - Возвращает:
- ссылку на этот объект.
- Исключения:
-
StringIndexOutOfBoundsException- если смещение некорректно.
insert
public StringBuffer insert(int offset,
char c) Вставляет строковое представление аргумента char в эту последовательность.
Общий эффект точно такой же, как если бы второй аргумент был преобразован в строку методом String.valueOf(char), а затем символ из этой строки был вставлен inserted в эту последовательность символов в указанном смещении.
Аргумент offset должен быть больше или равен 0, и меньше или равен длине этой последовательности.
- Параметры:
-
offset- смещение. -
c- символ. - Возвращает:
- ссылку на этот объект.
- Исключения:
-
IndexOutOfBoundsException- если смещение некорректно.
insert
public StringBuffer insert(int offset,
int i) Вставляет строковое представление второго аргумента int в эту последовательность.
Общий эффект точно такой же, как если бы второй аргумент был преобразован в строку методом String.valueOf(int), а затем символы этой строки были вставлены inserted в эту последовательность символов в указанном смещении.
Аргумент offset должен быть больше или равен 0, и меньше или равен длине этой последовательности.
- Параметры:
-
offset- смещение. -
i- целое число. - Возвращает:
- ссылку на этот объект.
- Исключения:
-
StringIndexOutOfBoundsException- если смещение некорректно.
insert
public StringBuffer insert(int offset,
long l) Вставляет строковое представление аргумента long в эту последовательность.
Общий эффект точно такой же, как если бы второй аргумент был преобразован в строку методом String.valueOf(long), а затем символы этой строки были вставлены inserted в эту последовательность символов в указанном смещении.
Аргумент offset должен быть больше или равен 0, и меньше или равен длине этой последовательности.
- Параметры:
-
offset- смещение. -
l- целое число с плавающей точкой. - Возвращает:
- ссылку на этот объект.
- Исключения:
-
StringIndexOutOfBoundsException- если смещение некорректно.
insert
public StringBuffer insert(int offset,
float f) Вставляет строковое представление аргумента float в эту последовательность.
Общий эффект точно такой же, как если бы второй аргумент был преобразован в строку методом String.valueOf(float), а затем символы этой строки были вставлены inserted в эту последовательность символов в указанном смещении.
Аргумент offset должен быть больше или равен 0, и меньше или равен длине этой последовательности.
- Параметры:
-
offset- смещение. -
f- число с плавающей точкой. - Возвращает:
- ссылку на этот объект.
- Исключения:
-
StringIndexOutOfBoundsException- если смещение некорректно.
insert
public StringBuffer insert(int offset,
double d) Вставляет строковое представление аргумента double в эту последовательность.
Общий эффект точно такой же, как если бы второй аргумент был преобразован в строку методом String.valueOf(double), а затем символы этой строки были вставлены inserted в эту последовательность символов в указанном смещении.
Аргумент offset должен быть больше или равен 0, и меньше или равен длине этой последовательности.
- Параметры:
-
offset- смещение. -
d- число с плавающей точкой двойной точности. - Возвращает:
- ссылку на этот объект.
- Исключения:
-
StringIndexOutOfBoundsException- если смещение некорректно.
indexOf
public int indexOf(String str)
Возвращает индекс в этой строке первого вхождения указанной подстроки.
Возвращаемый индекс — это наименьшее значение k для которого:
this.toString().startsWith(str, k)Если такого значения
k не существует, то возвращается -1. - Параметры:
-
str- подстрока для поиска. - Возвращает:
- индекс первого вхождения указанной подстроки, или
-1если такого вхождения нет. - С тех пор:
- 1.4
indexOf
public int indexOf(String str,
int fromIndex) Возвращает индекс в этой строке первого вхождения указанной подстроки, начиная с указанного индекса.
Возвращаемый индекс — это наименьшее значение k , для которого:
k >= Math.min(fromIndex, this.length()) &&
this.toString().startsWith(str, k) Если такого значения k не существует, то возвращается -1. - Параметры:
-
str— подстрока, которую нужно найти. -
fromIndex— индекс, с которого нужно начать поиск. - Возвращает:
- индекс первого вхождения указанной подстроки, начиная с указанного индекса, или
-1, если такого вхождения нет. - С:
- 1.4
lastIndexOf
public int lastIndexOf(String str)
Возвращает индекс в этой строке последнего вхождения указанной подстроки. Последнее вхождение пустой строки "" считается имеющим индекс this.length().
Возвращаемый индекс — это наибольшее значение k , для которого:
this.toString().startsWith(str, k)Если такого значения
k не существует, то возвращается -1. - Параметры:
-
str— подстрока, которую нужно найти. - Возвращает:
- индекс последнего вхождения указанной подстроки или
-1, если такого вхождения нет. - С:
- 1.4
lastIndexOf
public int lastIndexOf(String str,
int fromIndex) Возвращает индекс в этой строке последнего вхождения указанной подстроки, выполняя поиск назад, начиная с указанного индекса.
Возвращаемый индекс — это наибольшее значение k , для которого:
k <= Math.min(fromIndex, this.length()) &&
this.toString().startsWith(str, k) Если такого значения k не существует, то возвращается -1. - Параметры:
-
str— подстрока, которую нужно найти. -
fromIndex— индекс, с которого нужно начать поиск. - Возвращает:
- индекс последнего вхождения указанной подстроки, выполняя поиск назад от указанного индекса, или
-1, если такого вхождения нет. - С:
- 1.4
reverse
public StringBuffer reverse()
Заменяет эту последовательность символов на обратную последовательность. Если в последовательности присутствуют пары суррогатов, они обрабатываются как отдельные символы для операции обращения. Таким образом, порядок старших и младших суррогатов никогда не меняется. Пусть n — длина последовательности символов (а не длина в значениях char) непосредственно перед выполнением метода reverse. Тогда символ с индексом k в новой последовательности символов равен символу с индексом n-k-1 в старой последовательности символов.
Обратите внимание, что операция обращения может привести к созданию пар суррогатов, которые были несформированными младшими и старшими суррогатами до операции. Например, обращение "\uDC00\uD800" даёт "\uD800\uDC00", что является допустимой парой суррогатов.
- Возвращает:
- ссылка на этот объект.
- С:
- 1.0.2
chars
public IntStream chars()
Возвращает поток int , расширяя char значения из этой последовательности нулями. Любой символ, отображаемый как код суррогатной точки, передаётся без интерпретации.
Поток связывается с этой последовательностью, когда начинается терминальная операция потока (конкретно, для изменяемых последовательностей итератор для потока является связываемым позднее). Если последовательность изменяется во время этой операции, результат неопределён.
- Определено в:
-
charsв интерфейсеCharSequence - Возвращает:
- поток IntStream значений char из этой последовательности
- С:
- 9
codePoints
public IntStream codePoints()
Возвращает поток значений кодов символов из этой последовательности. Любые пары суррогатов, встречающиеся в последовательности, комбинируются как будто через Character.toCodePoint, и результат передаётся в поток. Любые другие кодовые единицы, включая обычные символы BMP, несформированные суррогаты и неопределённые кодовые единицы, дополняются нулями до int значений, которые затем передаются в поток.
Поток связывается с этой последовательностью, когда начинается терминальная операция потока (конкретно, для изменяемых последовательностей итератор для потока является связываемым позднее). Если последовательность изменяется во время этой операции, результат неопределён.
- Определено в:
-
codePointsв интерфейсеCharSequence - Возвращает:
- поток IntStream значений кодов Юникода из этой последовательности
- С:
- 9
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StringBuffer.html