|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang
类 StringBuffer
java.lang.Object java.lang.StringBuffer
- 所有已实现的接口:
- Serializable, Appendable, CharSequence
-
public final class StringBuffer
- extends Object
- implements Serializable, CharSequence
线程安全的可变字符序列。一个类似于 String
的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
StringBuffer
上的主要操作是 append
和 insert
方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append
方法始终将这些字符添加到缓冲区的末端;而 insert
方法则在指定的点添加字符。
例如,如果 z
引用一个当前内容为 "start
" 的字符串缓冲区对象,则此方法调用 z.append("le")
会使字符串缓冲区包含 "startle
",而 z.insert(4, "le")
将更改字符串缓冲区,使之包含 "starlet
"。
通常,如果 sb 引用 StringBuilder
的一个实例,则 sb.append(x)
和 sb.insert(sb.length(), x)
具有相同的效果。
当发生与源序列有关的操作(如源序列中的追加或插入操作)时,该类只在执行此操作的字符串缓冲区上而不是在源上实现同步。
每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder
。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
- 从以下版本开始:
- JDK1.0
- 另请参见:
-
StringBuilder
,String
, 序列化表格
构造方法摘要 | |
---|---|
StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。 |
|
StringBuffer(CharSequence seq) public java.lang.StringBuilder(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) 返回指定索引处的字符(统一代码点)。 |
int |
codePointBefore(int index) 返回指定索引前的字符(统一代码点)。 |
int |
codePointCount(int beginIndex, int endIndex) 返回此序列指定文本范围内的统一代码点。 |
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 中的字符替换此序列的子字符串中的字符。 |
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() 尝试减少用于字符序列的存储空间。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
StringBuffer
public StringBuffer()
- 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer
public StringBuffer(int capacity)
-
构造一个不带字符,但具有指定初始容量的字符串缓冲区。
- 参数:
-
capacity
- 初始容量。 - 抛出:
-
NegativeArraySizeException
- 如果capacity
参数小于0
。
StringBuffer
public StringBuffer(String str)
-
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初始容量为
16
加上字符串参数的长度。- 参数:
-
str
- 缓冲区的初始内容。 - 抛出:
-
NullPointerException
- 如果str
为null
StringBuffer
public StringBuffer(CharSequence seq)
-
public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的
CharSequence
相同的字符。该字符串缓冲区的初始容量为16
加上CharSequence
参数的长度。如果指定的
CharSequence
的长度小于或等于 0,则返回容量为16
的空缓冲区。- 参数:
-
seq
- 要复制的序列。 - 抛出:
-
NullPointerException
- 如果seq
为null
- 从以下版本开始:
- 1.5
方法详细信息 |
---|
length
public int length()
- 返回长度(字符数)。
-
- 指定者:
-
接口
CharSequence
中的length
-
- 返回:
- 此对象表示的当前字符序列的长度。
capacity
public int capacity()
- 返回当前容量。容量指可用于最新插入的字符的存储量,超过这一容量就需要再次进行分配。
-
-
- 返回:
- 当前容量。
ensureCapacity
public void ensureCapacity(int minimumCapacity)
-
确保容量至少等于指定的最小值。如果当前容量小于 minimumCapacity 参数,则可分配一个具有更大容量的新的内部数组。新容量的大小应大于:
minimumCapacity
参数。- 旧容量的两倍加
2
。
minimumCapacity
参数为非正数,则此方法不执行任何操作并返回。 -
-
- 参数:
-
minimumCapacity
- 所需的最小容量。
trimToSize
public void trimToSize()
-
尝试减少用于字符序列的存储空间。如果缓冲区大于保存当前字符序列所需的存储空间,则将重新调整其大小,以便更好地利用存储空间。调用此方法可能会影响后续调用
capacity()
方法时返回的值(但不要求如此)。 -
-
- 从以下版本开始:
- 1.5