字符串緩沖區(qū)可以被多個線程安全地使用。 這些方法在需要的時侯可以同步執(zhí)行,因而任一特定實例的所有操作就好象是以串行的次序發(fā)生 。
字符串緩沖區(qū)被編譯器用來實現(xiàn)連接兩個字符串的運(yùn)算符+
。 例如,代碼:
x = "a" + 4 + "c"
被編譯成等價的:
x = new StringBuffer().append("a").append(4).append("c")
.toString()
在 StringBuffer
上的基本操作是 append
和insert
方法,它們都被覆蓋以接受任意類型的數(shù)據(jù)。
每個方法都迅速地把所給的數(shù)據(jù)轉(zhuǎn)換成一個字符串,并且把該字符串的字符添加或插入
到字符串緩沖區(qū)中。
append
方法常常把這些字符添加到緩沖區(qū)的末端;
而 insert
方法則把這些字符添加到指定的地方 。
例如,如果 z
指的是一個字符串緩沖區(qū)內(nèi)的對象 ,其當(dāng)前的內(nèi)容是 "start
",于是通過調(diào)用方法z.append("le")
會使字符串緩沖區(qū)的內(nèi)容變成"startle
",而
z.insert(4, "le")
將使緩沖區(qū)的內(nèi)容變成
"starlet
"。
每一個字符串緩沖區(qū)都有一定的容量。 只要字符串緩沖區(qū)存儲的字符序列的
長度沒有超過它的容量,就無須申請新的內(nèi)部緩沖數(shù)組 。
如果內(nèi)部的緩沖區(qū)溢出,它將自動加以擴(kuò)大。
java.lang.Object
|
+----java.lang.StringBuffer
字符串緩沖區(qū)實現(xiàn)可變字符序列。
length
設(shè)定。boolean
型參數(shù)的字符串表示添加到字符串緩沖區(qū)。char
型參數(shù)的字符串表示添加到字符串緩沖區(qū)。char
型數(shù)組參數(shù)的字符串表示添加到字符串緩沖區(qū)。char
型數(shù)組參數(shù)的子數(shù)組的字符串表示添加到字符串緩沖區(qū)。double
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。float
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。int
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。long
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。Object
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。dst
。boolean
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。char
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。char
型數(shù)組參數(shù)的字符串表示添加到該字符串緩沖區(qū)。double
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。float
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。int
型參數(shù)表示的字符串插入到該字符串緩沖區(qū)。long
型參數(shù)的字符串表示插入到該字符串緩沖區(qū)。Object
型參數(shù)的字符串表示插入到該字符串緩沖區(qū)。ch
。
public StringBuffer()
public StringBuffer(int length)
length
設(shè)置。
length
小于 0
。
public StringBuffer(String str)
16
加上字符串參數(shù)的長度。
public int length()
public int capacity()
public synchronized void ensureCapacity(int minimumCapacity)
minimumCapacity
。2
.minimumCapacity
非正,該方法不作任何操作,只簡單地返回。
public synchronized void setLength(int newLength)
newLength
小于該字符串緩沖區(qū)的當(dāng)前長度。newLength
給出的字符數(shù)。
如果參數(shù) newLength
大于或等于當(dāng)前的長度,就用 null 字符 ('\u0000'
)補(bǔ)齊該字符串緩沖區(qū),以使長度變?yōu)閰?shù) newLength
指定的長度。
參數(shù) newLength
必須大于或等于 0
。
newLength
是 非法的。
public synchronized char charAt(int index)
字符串緩沖區(qū)的第一個字符的索引是 0
,下一個的索引是1
,對于索引數(shù)組依次類推。
偏移參量必須大于或等于 0
,但是小于字符串緩沖區(qū)的長度。
public synchronized void getChars(int srcBegin,
int srcEnd,
char dst[],
int dstBegin)
dst
。 第一個要復(fù)制的字符在下標(biāo)srcBegin
; 最后一個要復(fù)制的字符在下標(biāo) srcEnd-1
。 要復(fù)制的字符總數(shù)是srcEnd-srcBegin
。 要復(fù)制到 dst
子數(shù)組的字符開始于下標(biāo) dstBegin
,結(jié)束于下標(biāo)
dstbegin + (srcEnd-srcBegin) - 1
dst
的偏移量。
public synchronized void setCharAt(int index,
char ch)
ch
。
偏移參量必須大于或等于 0
,但小于字符串緩沖區(qū)的長度。
public synchronized StringBuffer append(Object obj)
Object
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)。
public synchronized StringBuffer append(String str)
把參數(shù) String
的字符依次添加到字符串緩沖區(qū)中,字符串緩沖區(qū)長度的增加值為該參數(shù)的長度。
public synchronized StringBuffer append(char str[])
char
型數(shù)組參數(shù)的字符串表示添加到字符串緩沖區(qū)。
把數(shù)組參數(shù)的字符依次添加到字符串緩沖區(qū)中。
字符串緩沖區(qū)的長度的增加值為參數(shù)的長度。
public synchronized StringBuffer append(char str[],
int offset,
int len)
char
型數(shù)組參數(shù)的子數(shù)組的字符串表示添加到字符串緩沖區(qū)。
把字符數(shù)組 str
從下標(biāo) offset
開始的字符,依次添加到了字符串緩沖區(qū)的內(nèi)容中。
該字符串緩沖區(qū)的長度增加了
len
。
public StringBuffer append(boolean b)
boolean
型參數(shù)的字符串表示添加到字符串緩沖區(qū)。
參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符接著也添加到了字符串緩沖區(qū)。
public synchronized StringBuffer append(char c)
char
型參數(shù)的字符串表示添加到字符串緩沖區(qū)。
參數(shù)添加到字符串緩沖區(qū)的內(nèi)容中。
字符串緩沖區(qū)的長度增加了 1
。
char
。
public StringBuffer append(int i)
int
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)。
public StringBuffer append(long l)
long
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)。
public StringBuffer append(float f)
float
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)。
public StringBuffer append(double d)
double
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)。
public synchronized StringBuffer insert(int offset,
Object obj)
Object
型參數(shù)的字符串表示插入到字符串緩沖區(qū)。
第二個參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被插入到字符串緩沖區(qū)的指定偏移位置。
偏移參量必須大于或等于 0
,小于或等于字符串緩沖區(qū)的長度。
Object
.
public synchronized StringBuffer insert(int offset,
String str)
參數(shù) String
的字符依次插入到字符串緩沖區(qū)的指定偏移位置。
字符串緩沖區(qū)的長度的增加值為參數(shù)的長度。
偏移參量必須大于或等于 0
,小于或等于字符串緩沖區(qū)的長度。
public synchronized StringBuffer insert(int offset,
char str[])
char
型數(shù)組參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
把數(shù)組參數(shù)的字符添加到字符串緩沖區(qū)里由 offset
指定的位置。 字符串緩沖區(qū)長度的增加值為參數(shù)的長度。
public StringBuffer insert(int offset,
boolean b)
boolean
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
第二個參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符被添加到了字符串緩沖區(qū)指定的偏移位置。
偏移參量必須大于或等于 0
,小于或等于字符串緩沖區(qū)的長度。
boolean
量。
public synchronized StringBuffer insert(int offset,
char c)
char
型參數(shù)的字符串表示添加到該字符串緩沖區(qū)。
把第二個參數(shù)表示的字符插入到字符串緩沖區(qū)里由 offset
指定的位置。 字符串緩沖區(qū)的長度增加了 1 。
偏移參量必須大于或等于
0
,小于或等于字符串緩沖區(qū)的長度。
char
。
public StringBuffer insert(int offset,
int i)
int
型參數(shù)的字符串表示插入到該字符串緩沖區(qū)。
第二個參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)指定的偏移位置。
偏移參量必須大于或等于 0
,小于或等于字符串緩沖區(qū)的長度。
int
.
public StringBuffer insert(int offset,
long l)
long
型參數(shù)的字符串表示插入到該字符串緩沖區(qū)。
第二個參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)指定的偏移位置。
偏移參量必須大于或等于 0
,小于或等于字符串緩沖區(qū)的長度。
long
.
public StringBuffer insert(int offset,
float f)
float
的字符串表示添加到該字符串緩沖區(qū)。
第二個參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)指定的偏移位置。
偏移參量必須大于或等于 0
,小于或等于字符串緩沖區(qū)的長度。
float
.
public StringBuffer insert(int offset,
double d)
double
的字符串表示添加到該字符串緩沖區(qū)。
第二個參數(shù)先轉(zhuǎn)換成一個字符串,就好象通過 String.valueOf
方法一樣,并且該字符串的字符隨后被添加到了字符串緩沖區(qū)指定的偏移位置。
偏移參量必須大于或等于 0
,小于或等于字符串緩沖區(qū)的長度。
double
.
public synchronized StringBuffer reverse()
public String toString()
String
對象,并且用字符串緩沖區(qū)所表示的字符序列進(jìn)行初始化。String
被返回。 隨后緩沖區(qū)發(fā)生的變化不再影響該 String
的內(nèi)容。