|
Spec-Zone .ru
спецификации, руководства, описания, API
|
java.lang.StringBufferString (§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