Spec-Zone .ru
спецификации, руководства, описания, API
|
java.lang.StringBuffer
String
(§20.12), но может быть изменен. В любом моменте времени это содержит некоторую определенную последовательность символов, но длина и контент последовательности могут быть изменены через определенные вызовы метода. public classУ строкового буфера есть емкость. Пока длина символьной последовательности, содержавшейся в строковом буфере, не превышает емкость, не необходимо создать новый внутренний буферный массив.StringBuffer
{ publicStringBuffer
(); publicStringBuffer
(int length)
throws NegativeArraySizeException; publicStringBuffer
(String str); public StringtoString
(); public intlength
(); public voidsetLength
(int newLength) throwsIndexOutOfBoundsException
; public intcapacity
(); public voidensureCapacity
(int minimumCapacity); public charcharAt
(int index) throwsIndexOutOfBoundsException
; public voidsetCharAt
(int index, char ch) throwsIndexOutOfBoundsException
; public voidgetChars
(int srcBegin, int srcEnd, char[] dst, int dstBegin)
throws NullPointerException,IndexOutOfBoundsException
; public StringBufferappend
(Object obj); public StringBufferappend
(String str); public StringBufferappend
(char[] str) throws NullPointerException; public StringBufferappend
(char[] str, int offset, int len) throws NullPointerException,IndexOutOfBoundsException
; public StringBufferappend
(boolean b); public StringBufferappend
(char c); public StringBufferappend
(int i); public StringBufferappend
(long l); public StringBufferappend
(float f); public StringBufferappend
(double d); public StringBufferinsert
(int offset, Object obj) throwsIndexOutOfBoundsException
; public StringBufferinsert
(int offset, String str) throwsIndexOutOfBoundsException
; public StringBufferinsert
(int offset, char[] str) throws NullPointerException,IndexOutOfBoundsException
; public StringBufferinsert
(int offset, boolean b) throwsIndexOutOfBoundsException
; public StringBufferinsert
(int offset, char c) throwsIndexOutOfBoundsException
; public StringBufferinsert
(int offset, int i) throwsIndexOutOfBoundsException
; public StringBufferinsert
(int offset, long l) throwsIndexOutOfBoundsException
; public StringBufferinsert
(int offset, float f) throwsIndexOutOfBoundsException
; public StringBufferinsert
(int offset, double d) throwsIndexOutOfBoundsException
; public StringBufferreverse
(); }
Строковые буферы безопасны для использования многократными потоками. Методы синхронизируются, где необходимый так, чтобы все операции на любом определенном экземпляре вели себя, как будто они происходят в некотором последовательном порядке, который является непротиворечивым с порядком вызовов метода, сделанных каждым из отдельных включенных потоков.
Строковые буферы могут использоваться компилятором, чтобы реализовать оператор связи двоичной строки +
(§15.17.1). Например, предположить k
имеет тип int
и a
имеет тип Object
. Затем выражение:
k + "/" + a
может быть скомпилирован, как будто это было выражение:
new StringBuffer().append(k).append("/").который создает новый строковый буфер (первоначально пустой), добавляет строковое представление каждого операнда к строковому буферу поочередно, и затем преобразовывает содержание строкового буфера к строке. В целом, это избегает создавать много временных строк.
append(a).toString()
Основные операции на a StringBuffer
append
и insert
методы, которые перегружаются, чтобы принять данные любого типа. Каждый эффективно преобразовывает данную данную величину в строку и затем добавляет символы той строки к содержанию строкового буфера. append
метод всегда добавляет эти символы в конце буфера; insert
метод добавляет символы в указанной точке.
Например, если z
обращается к строковому буферному объекту, текущее содержание которого является символами"start
", тогда вызов метода z.append("le")
изменил бы строковый буфер, чтобы содержать символы"startle
", но z.insert(4, "le")
изменил бы строковый буфер, чтобы содержать символы"starlet
".
Вообще, если sb
обращается к экземпляру a StringBuffer
, тогда sb.append(x)
имеет тот же самый эффект как sb.insert(sb.length(), x)
.
20.13.1 public
StringBuffer
()
Этот конструктор инициализирует недавно создаваемый StringBuffer
возразите так, чтобы это первоначально представило пустую символьную последовательность и имело емкость 16.
20.13.2 public
StringBuffer
(int length)
throws NegativeArraySizeException
Этот конструктор инициализирует недавно создаваемый StringBuffer
возразите так, чтобы это первоначально представило пустую символьную последовательность, но определило емкость параметром.
Если параметр отрицателен, a NegativeArraySizeException
бросается.
20.13.3 public
StringBuffer
(String str)
Этот конструктор инициализирует недавно создаваемый StringBuffer
возразите так, чтобы это представило ту же самую последовательность символов как параметр; другими словами, начальное содержание строкового буфера копия строки параметра. Начальная емкость строкового буфера 16 плюс длина строки параметра.
20.13.4 public String
toString
()
Новое String
объект создается и инициализируется, чтобы содержать символьную последовательность, в настоящий момент представленную строковым буфером; новое String
тогда возвращается. Любые последующие изменения к строковому буферу не влияют на содержание возвращенной строки.
Совет реализации: Этот метод может быть кодирован, чтобы создать новое String
объект, не выделяя новую память, чтобы содержать копию символьной последовательности. Вместо этого строка может совместно использовать память, используемую строковым буфером. Любая последующая работа, которая изменяет контент или емкость строкового буфера, должна тогда сделать копию внутреннего буфера тогда. Эта стратегия эффективна для того, чтобы уменьшить объем памяти, выделенный работой конкатенации строк (§15.17.1), когда это реализуется, используя строковый буфер.
Переопределения toString
метод Object
(§20.1.2).
20.13.5 public int
length
()
Этот метод возвращает длину последовательности символов, в настоящий момент представленных этим StringBuffer
объект.
20.13.6 public int
capacity
()
Текущая емкость этого StringBuffer
объект возвращается.
20.13.7 public void
ensureCapacity
(int minimumCapacity)
Если текущая емкость этого StringBuffer
объект является меньше чем параметр, затем новый внутренний буфер создается с большей емкостью. Новая емкость будет большим из:
minimumCapacity
параметр неположителен, этот метод не предпринимает мер и просто возвращается.20.13.8 public void
setLength
(int newLength)
throws IndexOutOfBoundsException
Этот строковый буфер изменяется, чтобы представить новую символьную последовательность, длина которой определяется параметром. Для каждого неотрицательного индекса k меньше чем newLength
, символ по индексу, k в новой символьной последовательности является тем же самым как символом по индексу k в старой последовательности, если k является меньше чем длина старой символьной последовательности; иначе, это - нулевой символ '\u0000'
. Этот метод также вызывает ensureCapacity
метод (§20.13.7) с параметром newLength
.
Если параметр отрицателен, IndexOutOfBoundsException
бросается.
20.13.9 public char
charAt
(int index)
throws IndexOutOfBoundsException
Указанный символ последовательности, в настоящий момент представленной строковым буфером, как обозначено index
параметр, возвращается. Первый символ последовательности по индексу 0
, следующее по индексу 1
, и так далее, что касается индексации массива.
Если index
параметр отрицателен или не меньше чем текущая длина (§20.13.5) строкового буфера, IndexOutOfBoundsException
бросается.
20.13.10 public void
setCharAt
(int index, char ch)
throws IndexOutOfBoundsException
Строковый буфер изменяется, чтобы представить новую символьную последовательность, которая идентична старой символьной последовательности, за исключением того, что это содержит символ ch
в позиции index
.
Если index
параметр отрицателен или не меньше чем текущая длина (§20.13.5) строкового буфера, IndexOutOfBoundsException
бросается.
20.13.11 public void
getChars
(int srcBegin, int srcEnd,
char[] dst, int dstBegin)
throws NullPointerException,
IndexOutOfBoundsException
Символы копируются с этого StringBuffer
объект в целевой массив dst
. Первый символ, который будет скопирован, по индексу srcBegin
; последний знак, который будет скопирован, по индексу srcEnd-1
(таким образом общее количество символов, которые будут скопированы, srcEnd-srcBegin
). Символы копируются в подмассив dst
запуск по индексу dstBegin
и окончание по индексу dstbegin+(srcEnd-srcBegin)-1
.
Если dst
null
, тогда a NullPointerException
бросается.
Иначе, если какое-либо следующее является истиной, IndexOutOfBoundsException
бросается и место назначения не изменяется:
srcBegin
параметр отрицателен.
srcBegin
параметр больше чем srcEnd
параметр.
srcEnd
больше чем this.length()
, текущая длина этого строкового буфера.
dstBegin+srcEnd-srcBegin
больше чем dst.length
. 20.13.12 public StringBuffer
append
(Object obj)
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.38) и символы той строки тогда добавляются (§20.13.13) к этому StringBuffer
объект. Ссылка на это StringBuffer
объект возвращается.
20.13.13 public StringBuffer
append
(String str)
Символы String
параметр добавляется, в порядке, к содержанию этого строкового буфера, увеличивая длину этого строкового буфера длиной параметра. Если str
null
, тогда эти четыре символа"null
"добавляются к этому строковому буферу. Метод ensureCapacity
(§20.13.7) сначала вызывают с этой новой строковой буферной длиной как ее параметр. Ссылка на это StringBuffer
объект возвращается.
Позвольте n быть длиной старой символьной последовательности, тот, содержавшийся в строковом буфере только до выполнения append
метод. Затем символ по индексу, k в новой символьной последовательности равен символу по индексу k в старой символьной последовательности, если k является меньше чем n; иначе, это равно символу по индексу k-
n в параметре str
.
20.13.14 public StringBuffer
append
(char[] str)
throws NullPointerException
Символы параметра массива добавляются, в порядке, к содержанию этого строкового буфера, увеличивая длину этого строкового буфера длиной параметра. Метод ensureCapacity
(§20.13.7) сначала вызывают с этой новой строковой буферной длиной как ее параметр. Ссылка на это StringBuffer
объект возвращается.
Полный эффект состоит точно в том, как будто параметр был преобразован в строку методом String.valueOf
(§20.12.39) и символы той строки были тогда добавлены (§20.13.13) к этому StringBuffer
объект.
20.13.15 public StringBuffer
append
(char[] str,
int offset, int len)
throws NullPointerException,
IndexOutOfBoundsException
Символы символьного массива str
, запуск по индексу offset
, добавляются, в порядке, к содержанию этого строкового буфера, увеличивая длину этого строкового буфера len
. Метод ensureCapacity
(§20.13.7) сначала вызывают с этой новой строковой буферной длиной как ее параметр. Ссылка на это StringBuffer
объект возвращается.
Полный эффект состоит точно в том, как будто параметры были преобразованы в строку методом String.valueOf
из трех параметров (§20.12.40) и символы той строки были тогда добавлены (§20.13.13) к этому StringBuffer
объект.
20.13.16 public StringBuffer
append
(boolean b)
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.41) и символы той строки тогда добавляются (§20.13.13) к этому StringBuffer
объект. Ссылка на это StringBuffer
объект возвращается.
20.13.17 public StringBuffer
append
(char c)
Параметр добавляется к содержанию этого строкового буфера, увеличивая длину этого строкового буфера 1
. Метод ensureCapacity
(§20.13.7) сначала вызывают с этой новой строковой буферной длиной как ее параметр. Ссылка на это StringBuffer
объект возвращается.
Полный эффект состоит точно в том, как будто параметр был преобразован в строку методом String.valueOf
(§20.12.42) и символ в той строке были тогда добавлены (§20.13.13) к этому StringBuffer
объект.
20.13.18 public StringBuffer
append
(int i)
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.43) и символы той строки тогда добавляются (§20.13.13) к этому StringBuffer
объект. Ссылка на это StringBuffer
объект возвращается.
20.13.19 public StringBuffer
append
(long l)
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.44) и символы той строки тогда добавляются (§20.13.13) к этому StringBuffer
объект. Ссылка на это StringBuffer
объект возвращается.
20.13.20 public StringBuffer
append
(float f)
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.45) и символы той строки тогда добавляются (§20.13.13) к этому StringBuffer
объект. Ссылка на это StringBuffer
объект возвращается.
20.13.21 public StringBuffer
append
(double d)
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.46) и символы той строки тогда добавляются (§20.13.13) к этому StringBuffer
объект. Ссылка на это StringBuffer
объект возвращается.
20.13.22 public StringBuffer
insert
(int offset, Object obj)
throws IndexOutOfBoundsException
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.38) и символы той строки тогда вставляются (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
. Ссылка на это StringBuffer
объект возвращается.
20.13.23 public StringBuffer
insert
(int offset, String str)
throws IndexOutOfBoundsException
Символы String
параметр вставляется, в порядке, в строковый буфер в позиции, обозначенной offset
, перемещение вверх любых символов первоначально выше той позиции и увеличения длины строки буферизует длиной параметра. Если str
null
, тогда эти четыре символа"null
"вставляются в этот строковый буфер. Метод ensureCapacity
(§20.13.7) сначала вызывают с этой новой строковой буферной длиной как ее параметр. Ссылка на это StringBuffer
объект возвращается.
Символ по индексу k в новой символьной последовательности равен:
offset
-offset
в параметре str
, если k не является меньше чем offset
но меньше чем offset+str.length()
-str.length()
в старой символьной последовательности, если k не является меньше чем offset+str.length()
20.13.24 public StringBuffer
insert
(int offset, char[] str)
throws NullPointerException,
IndexOutOfBoundsException
Символы параметра массива, взятого в порядке, вставляются в этот строковый буфер, увеличивая длину строкового буфера длиной параметра. Метод ensureCapacity
(§20.13.7) сначала вызывают с этой новой строковой буферной длиной как ее параметр. Ссылка на это StringBuffer
объект возвращается.
Полный эффект состоит точно в том, как будто параметр был преобразован в строку методом String.valueOf
(§20.12.39) и символы той строки были тогда вставлены (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
.
Отметьте это в то время как StringBuffer
класс обеспечивает append
метод, который берет смещение, символьный массив, и два других параметра (§20.13.15), это в настоящий момент не обеспечивает insert
метод, который берет смещение, символьный массив, и два других параметра.
20.13.25 public StringBuffer
insert
(int offset, boolean b)
throws IndexOutOfBoundsException
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.41) и символы той строки тогда вставляются (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
. Ссылка на это StringBuffer
объект возвращается.
20.13.26 public StringBuffer
insert
(int offset, char c)
throws IndexOutOfBoundsException
Параметр вставляется в содержание этого строкового буфера в позиции, обозначенной offset
, увеличение длины этой строки буферизует 1
. Метод ensureCapacity
(§20.13.7) сначала вызывают с этой новой строковой буферной длиной как ее параметр. Ссылка на это StringBuffer
объект возвращается.
Полный эффект состоит точно в том, как будто параметр был преобразован в строку методом String.valueOf
(§20.12.42) и символ в той строке были тогда вставлены (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
.
20.13.27 public StringBuffer
insert
(int offset, int i)
throws IndexOutOfBoundsException
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.43) и символы той строки тогда вставляются (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
. Ссылка на это StringBuffer
объект возвращается.
20.13.28 public StringBuffer
insert
(int offset, long l)
throws IndexOutOfBoundsException
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.44) и символы той строки вставляются (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
. Ссылка на это StringBuffer
объект возвращается.
20.13.29 public StringBuffer
insert
(int offset, float f)
throws IndexOutOfBoundsException
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.45) и символы той строки тогда вставляются (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
. Ссылка на это StringBuffer
объект возвращается.
20.13.30 public StringBuffer
insert
(int offset, double d)
throws IndexOutOfBoundsException
Параметр преобразовывается в строку как будто методом String.valueOf
(§20.12.46) и символы той строки тогда вставляются (§20.13.23) в это StringBuffer
объект в позиции, обозначенной offset
. Ссылка на это StringBuffer
объект возвращается.
20.13.31 public StringBuffer
reverse
()
Символьная последовательность содержится в этом StringBuffer
объект заменяется реверсом той последовательности. Ссылка на это StringBuffer
объект возвращается.
Позвольте n быть длиной старой символьной последовательности, тот, содержавшийся в строковом буфере только до выполнения reverse
метод. Затем символ по индексу k в новой символьной последовательности равен символу по индексу n-
k-1
в старой символьной последовательности.
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com