- java.lang.Object
-
- java.lang.StringBuffer
-
All Implemented Interfaces:
Serializable , Appendable , CharSequence
public final class StringBuffer extends Object implements Serializable, CharSequence
注意:
- 线程安全,可变的字符序列。 字符串缓冲区就像一个
String
,但可以修改。 在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。 - 字符串缓冲区可以安全地被多个线程使用。 这些方法在必要时进行同步,以便任何特定实例上的所有操作都按照与所涉及的各个线程所执行的方法调用顺序一致的顺序发生。
- StringBuffer的主要
StringBuffer
是append
和insert
方法,它们被重载以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串缓冲区。append
方法总是在缓冲区的末尾添加这些字符;insert
方法将insert
添加到指定点。 - 一般情况下,如果某人是指的一个实例
StringBuffer
,则sb.append(x)
具有相同的效果sb.insert(sb.length(), x)
。 - 每当涉及源序列(例如从源序列追加或插入)的操作发生时,该类仅在执行操作的字符串缓冲器上进行同步,而不在源上。 请注意,虽然
StringBuffer
被设计为可以安全地从多个线程并发使用,但如果构造函数或append
或insert
操作被传递通过线程共享的源序列,则调用代码必须确保该操作具有一致且不变的视图在操作期间的源序列。 呼叫者通过使用不可变的源序列,或者不跨线程共享源序列,可以在呼叫期间持有锁来满足这一点。 - 每个字符串缓冲区都有一个容量。 只要字符串缓冲区中包含的字符序列的长度不超过容量,就不必分配新的内部缓冲区数组。 如果内部缓冲区溢出,则会自动变大。
- 除非另有说明,否则将
null
参数传递给null
中的构造函数或方法将导致抛出NullPointerException
。 - 从版本JDK 5开始,这个类别已经被一个等级类补充了,这个类被设计为使用一个线程
StringBuilder
。StringBuilder
应该使用StringBuilder
类,因为它支持所有相同的操作,但它更快,因为它不执行同步。
-
构造方法摘要
-
构造方法 Constructor and Description StringBuffer()
构造一个没有字符的字符串缓冲区,初始容量为16个字符。
StringBuffer(CharSequence seq)
构造一个包含与指定的相同字符的字符串缓冲区
CharSequence
。StringBuffer(int capacity)
构造一个没有字符的字符串缓冲区和指定的初始容量。
StringBuffer(String str)
构造一个初始化为指定字符串内容的字符串缓冲区
-
-
方法摘要
-
StringBuffer
append(boolean b)
将
boolean
参数的字符串表示附加到序列中。StringBuffer
append(char c)
将
char
参数的字符串表示附加到此序列。StringBuffer
append(char[] str)
将
char
数组参数的字符串表示附加到此序列。StringBuffer
append(char[] str, int offset, int len)
将
char
数组参数的子阵列的字符串表示附加到此序列。StringBuffer
append(CharSequence s)
追加指定的
CharSequence
到这个序列。StringBuffer
append(CharSequence s, int start, int end)
追加指定的序列
CharSequence
到这个序列。StringBuffer
append(double d)
将
double
参数的字符串表示附加到此序列。StringBuffer
append(float f)
将
float
参数的字符串表示附加到此序列。StringBuffer
append(int i)
将
int
参数的字符串表示附加到此序列。StringBuffer
append(long lng)
将
long
参数的字符串表示附加到此序列。StringBuffer
append(Object obj)
追加
Object
参数的字符串表示。StringBuffer
append(String str)
将指定的字符串附加到此字符序列。
StringBuffer
append(StringBuffer sb)
将指定
StringBuffer
这个序列。StringBuffer
appendCodePoint(int codePoint)
将
codePoint
参数的字符串表示法附加到此序列。int
capacity()
返回当前容量。
char
charAt(int index)
返回
char
在指定索引在这个序列值。int
codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。
int
codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。
int
codePointCount(int beginIndex, int endIndex)
返回此序列指定文本范围内的Unicode代码点数。
StringBuffer
delete(int start, int end)
删除此序列的子字符串中的字符。
StringBuffer
deleteCharAt(int index)
删除
char
在这个序列中的指定位置。void
ensureCapacity(int minimumCapacity)
确保容量至少等于规定的最小值。
void
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
字符从该序列复制到目标字符数组
dst
。int
indexOf(String str)
返回指定子字符串第一次出现的字符串内的索引。
int
indexOf(String str, int fromIndex)
返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
StringBuffer
insert(int offset, boolean b)
在此序列中插入
boolean
参数的字符串表示形式。StringBuffer
insert(int offset, char c)
在此序列中插入
char
参数的字符串表示形式。StringBuffer
insert(int offset, char[] str)
在此序列中插入
char
数组参数的字符串表示形式。StringBuffer
insert(int index, char[] str, int offset, int len)
在此序列中插入
str
数组参数的子阵列的字符串表示形式。StringBuffer
insert(int dstOffset, CharSequence s)
将指定的
CharSequence
这个序列。StringBuffer
insert(int dstOffset, CharSequence s, int start, int end)
将指定的子序列
CharSequence
这个序列。StringBuffer
insert(int offset, double d)
在此序列中插入
double
参数的字符串表示形式。StringBuffer
insert(int offset, float f)
在此序列中插入
float
参数的字符串表示形式。StringBuffer
insert(int offset, int i)
将第二个
int
参数的字符串表示插入到此序列中。StringBuffer
insert(int offset, long l)
在此序列中插入
long
参数的字符串表示形式。StringBuffer
insert(int offset, Object obj)
将
Object
参数的字符串表示插入到此字符序列中。StringBuffer
insert(int offset, String str)
将字符串插入到此字符序列中。
int
lastIndexOf(String str)
返回指定子字符串最右边出现的字符串内的索引。
int
lastIndexOf(String str, int fromIndex)
返回指定子字符串最后一次出现的字符串中的索引。
int
length()
返回长度(字符数)。
int
offsetByCodePoints(int index, int codePointOffset)
返回此序列中与
index
(codePointOffset
代码点偏移的索引。StringBuffer
replace(int start, int end, String str)
用指定的String中的字符替换此序列的子字符串中的
String
。StringBuffer
reverse()
导致该字符序列被序列的相反代替。
void
setCharAt(int index, char ch)
指定索引处的字符设置为
ch
。void
setLength(int newLength)
设置字符序列的长度。
CharSequence
subSequence(int start, int end)
返回一个新的字符序列,该序列是该序列的子序列。
String
substring(int start)
返回一个新的
String
,其中包含此字符序列中当前包含的字符的子序列。String
substring(int start, int end)
返回一个新的
String
,其中包含此序列中当前包含的字符的子序列。String
toString()
返回表示此顺序中的数据的字符串。
void
trimToSize()
尝试减少用于字符序列的存储。
-