字符串缓冲区可以被多个线程安全地使用。 这些方法在需要的时侯可以同步执行,因而任一特定实例的所有操作就好象是以串行的次序发生 。
字符串缓冲区被编译器用来实现连接两个字符串的运算符+
。 例如,代码:
x = "a" + 4 + "c"
被编译成等价的:
x = new StringBuffer().append("a").append(4).append("c")
.toString()
在 StringBuffer
上的基本操作是 append
和insert
方法,它们都被覆盖以接受任意类型的数据。
每个方法都迅速地把所给的数据转换成一个字符串,并且把该字符串的字符添加或插入
到字符串缓冲区中。
append
方法常常把这些字符添加到缓冲区的末端;
而 insert
方法则把这些字符添加到指定的地方 。
例如,如果 z
指的是一个字符串缓冲区内的对象 ,其当前的内容是 "start
",于是通过调用方法z.append("le")
会使字符串缓冲区的内容变成"startle
",而
z.insert(4, "le")
将使缓冲区的内容变成
"starlet
"。
每一个字符串缓冲区都有一定的容量。 只要字符串缓冲区存储的字符序列的
长度没有超过它的容量,就无须申请新的内部缓冲数组 。
如果内部的缓冲区溢出,它将自动加以扩大。
java.lang.Object
|
+----java.lang.StringBuffer
字符串缓冲区实现可变字符序列。
length
设定。boolean
型参数的字符串表示添加到字符串缓冲区。char
型参数的字符串表示添加到字符串缓冲区。char
型数组参数的字符串表示添加到字符串缓冲区。char
型数组参数的子数组的字符串表示添加到字符串缓冲区。double
型参数的字符串表示添加到该字符串缓冲区。float
型参数的字符串表示添加到该字符串缓冲区。int
型参数的字符串表示添加到该字符串缓冲区。long
型参数的字符串表示添加到该字符串缓冲区。Object
型参数的字符串表示添加到该字符串缓冲区。dst
。boolean
型参数的字符串表示添加到该字符串缓冲区。char
型参数的字符串表示添加到该字符串缓冲区。char
型数组参数的字符串表示添加到该字符串缓冲区。double
型参数的字符串表示添加到该字符串缓冲区。float
型参数的字符串表示添加到该字符串缓冲区。int
型参数表示的字符串插入到该字符串缓冲区。long
型参数的字符串表示插入到该字符串缓冲区。Object
型参数的字符串表示插入到该字符串缓冲区。ch
。
public StringBuffer()
public StringBuffer(int length)
length
设置。
length
小于 0
。
public StringBuffer(String str)
16
加上字符串参数的长度。
public int length()
public int capacity()
public synchronized void ensureCapacity(int minimumCapacity)
minimumCapacity
。2
.minimumCapacity
非正,该方法不作任何操作,只简单地返回。
public synchronized void setLength(int newLength)
newLength
小于该字符串缓冲区的当前长度。newLength
给出的字符数。
如果参数 newLength
大于或等于当前的长度,就用 null 字符 ('\u0000'
)补齐该字符串缓冲区,以使长度变为参数 newLength
指定的长度。
参数 newLength
必须大于或等于 0
。
newLength
是 非法的。
public synchronized char charAt(int index)
字符串缓冲区的第一个字符的索引是 0
,下一个的索引是1
,对于索引数组依次类推。
偏移参量必须大于或等于 0
,但是小于字符串缓冲区的长度。
public synchronized void getChars(int srcBegin,
int srcEnd,
char dst[],
int dstBegin)
dst
。 第一个要复制的字符在下标srcBegin
; 最后一个要复制的字符在下标 srcEnd-1
。 要复制的字符总数是srcEnd-srcBegin
。 要复制到 dst
子数组的字符开始于下标 dstBegin
,结束于下标
dstbegin + (srcEnd-srcBegin) - 1
dst
的偏移量。
public synchronized void setCharAt(int index,
char ch)
ch
。
偏移参量必须大于或等于 0
,但小于字符串缓冲区的长度。
public synchronized StringBuffer append(Object obj)
Object
型参数的字符串表示添加到该字符串缓冲区。
参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区。
public synchronized StringBuffer append(String str)
把参数 String
的字符依次添加到字符串缓冲区中,字符串缓冲区长度的增加值为该参数的长度。
public synchronized StringBuffer append(char str[])
char
型数组参数的字符串表示添加到字符串缓冲区。
把数组参数的字符依次添加到字符串缓冲区中。
字符串缓冲区的长度的增加值为参数的长度。
public synchronized StringBuffer append(char str[],
int offset,
int len)
char
型数组参数的子数组的字符串表示添加到字符串缓冲区。
把字符数组 str
从下标 offset
开始的字符,依次添加到了字符串缓冲区的内容中。
该字符串缓冲区的长度增加了
len
。
public StringBuffer append(boolean b)
boolean
型参数的字符串表示添加到字符串缓冲区。
参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符接着也添加到了字符串缓冲区。
public synchronized StringBuffer append(char c)
char
型参数的字符串表示添加到字符串缓冲区。
参数添加到字符串缓冲区的内容中。
字符串缓冲区的长度增加了 1
。
char
。
public StringBuffer append(int i)
int
型参数的字符串表示添加到该字符串缓冲区。
参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区。
public StringBuffer append(long l)
long
型参数的字符串表示添加到该字符串缓冲区。
参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区。
public StringBuffer append(float f)
float
型参数的字符串表示添加到该字符串缓冲区。
参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区。
public StringBuffer append(double d)
double
型参数的字符串表示添加到该字符串缓冲区。
参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区。
public synchronized StringBuffer insert(int offset,
Object obj)
Object
型参数的字符串表示插入到字符串缓冲区。
第二个参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被插入到字符串缓冲区的指定偏移位置。
偏移参量必须大于或等于 0
,小于或等于字符串缓冲区的长度。
Object
.
public synchronized StringBuffer insert(int offset,
String str)
参数 String
的字符依次插入到字符串缓冲区的指定偏移位置。
字符串缓冲区的长度的增加值为参数的长度。
偏移参量必须大于或等于 0
,小于或等于字符串缓冲区的长度。
public synchronized StringBuffer insert(int offset,
char str[])
char
型数组参数的字符串表示添加到该字符串缓冲区。
把数组参数的字符添加到字符串缓冲区里由 offset
指定的位置。 字符串缓冲区长度的增加值为参数的长度。
public StringBuffer insert(int offset,
boolean b)
boolean
型参数的字符串表示添加到该字符串缓冲区。
第二个参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符被添加到了字符串缓冲区指定的偏移位置。
偏移参量必须大于或等于 0
,小于或等于字符串缓冲区的长度。
boolean
量。
public synchronized StringBuffer insert(int offset,
char c)
char
型参数的字符串表示添加到该字符串缓冲区。
把第二个参数表示的字符插入到字符串缓冲区里由 offset
指定的位置。 字符串缓冲区的长度增加了 1 。
偏移参量必须大于或等于
0
,小于或等于字符串缓冲区的长度。
char
。
public StringBuffer insert(int offset,
int i)
int
型参数的字符串表示插入到该字符串缓冲区。
第二个参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区指定的偏移位置。
偏移参量必须大于或等于 0
,小于或等于字符串缓冲区的长度。
int
.
public StringBuffer insert(int offset,
long l)
long
型参数的字符串表示插入到该字符串缓冲区。
第二个参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区指定的偏移位置。
偏移参量必须大于或等于 0
,小于或等于字符串缓冲区的长度。
long
.
public StringBuffer insert(int offset,
float f)
float
的字符串表示添加到该字符串缓冲区。
第二个参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区指定的偏移位置。
偏移参量必须大于或等于 0
,小于或等于字符串缓冲区的长度。
float
.
public StringBuffer insert(int offset,
double d)
double
的字符串表示添加到该字符串缓冲区。
第二个参数先转换成一个字符串,就好象通过 String.valueOf
方法一样,并且该字符串的字符随后被添加到了字符串缓冲区指定的偏移位置。
偏移参量必须大于或等于 0
,小于或等于字符串缓冲区的长度。
double
.
public synchronized StringBuffer reverse()
public String toString()
String
对象,并且用字符串缓冲区所表示的字符序列进行初始化。String
被返回。 随后缓冲区发生的变化不再影响该 String
的内容。