- java.lang.Object
-
- java.lang.StringBuffer
-
- All Implemented Interfaces:
-
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"。一般情况下,如果某人是指的一个实例
StringBuffer,然后sb.append(x)具有相同的效果sb.insert(sb.length(), x)。每当涉及源序列(例如从源序列追加或插入)的操作发生时,该类仅在执行操作的字符串缓冲器上进行同步,而不在源上。 请注意,虽然
StringBuffer被设计为可以安全地从多个线程并发使用,但如果构造函数或append或insert操作通过跨线程共享的源序列,则调用代码必须确保该操作具有一致且不变的视图的源序列在操作的持续时间。 呼叫者通过使用不可变的源序列,或者不跨线程共享源序列,可以在呼叫期间持有锁来满足这一点。每个字符串缓冲区有一个容量。 只要字符串缓冲区中包含的字符序列的长度不超过容量,就不必分配新的内部缓冲区数组。 如果内部缓冲区溢出,则会自动变大。
除非另有说明,否则将
null参数传递给null中的构造函数或方法将导致抛出NullPointerException。从版本JDK 5开始,这个类已经被一个等同的类补充了,它被设计为使用一个线程,
StringBuilder。 通常应该使用StringBuilder类,因为它支持所有相同的操作,但它更快,因为它不执行同步。- 从以下版本开始:
- 1.0
- 另请参见:
-
StringBuilder,String, Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 StringBuffer()构造一个没有字符的字符串缓冲区,初始容量为16个字符。StringBuffer(int capacity)构造一个没有字符的字符串缓冲区和指定的初始容量。StringBuffer(CharSequence seq)构造一个字符串缓冲区,其中包含与指定的CharSequence相同的字符。StringBuffer(String str)构造一个初始化为指定字符串内容的字符串缓冲区。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 StringBufferappend(boolean b)将boolean参数的字符串表示追加到序列中。StringBufferappend(char c)将char参数的字符串表示追加到此序列。StringBufferappend(char[] str)将char数组参数的字符串表示追加到此序列。StringBufferappend(char[] str, int offset, int len)将char数组参数的子阵列的字符串表示追加到此序列。StringBufferappend(double d)将double参数的字符串表示追加到此序列。StringBufferappend(float f)将float参数的字符串表示法附加到此序列。StringBufferappend(int i)将int参数的字符串表示法附加到此序列。StringBufferappend(long lng)将long参数的字符串表示法附加到此序列。StringBufferappend(CharSequence s)追加指定的CharSequence到这个序列。StringBufferappend(CharSequence s, int start, int end)追加指定的序列CharSequence序列。StringBufferappend(Object obj)追加Object参数的字符串表示形式。StringBufferappend(String str)将指定的字符串附加到此字符序列。StringBufferappend(StringBuffer sb)追加指定的StringBuffer到这个序列。StringBufferappendCodePoint(int codePoint)将codePoint参数的字符串表示追加到此序列。intcapacity()返回当前容量。charcharAt(int index)返回指定索引处的此序列中的char值。IntStreamchars()返回一个int的数据流,int零序扩展char值。intcodePointAt(int index)返回指定索引处的字符(Unicode代码点)。intcodePointBefore(int index)返回指定索引之前的字符(Unicode代码点)。intcodePointCount(int beginIndex, int endIndex)返回此序列指定文本范围内的Unicode代码点数。IntStreamcodePoints()从此序列返回码流值。StringBufferdelete(int start, int end)删除此序列的子字符串中的字符。StringBufferdeleteCharAt(int index)按照该顺序删除指定位置的char。voidensureCapacity(int minimumCapacity)确保容量至少等于规定的最小值。voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)字符从此序列复制到目标字符数组dst。intindexOf(String str)返回指定子字符串第一次出现的字符串内的索引。intindexOf(String str, int fromIndex)返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。StringBufferinsert(int offset, boolean b)将boolean参数的字符串表示插入到此序列中。StringBufferinsert(int offset, char c)将char参数的字符串表示插入到此序列中。StringBufferinsert(int offset, char[] str)在此序列中插入char数组参数的字符串表示形式。StringBufferinsert(int index, char[] str, int offset, int len)将str数组参数的子阵列的字符串表示插入到此序列中。StringBufferinsert(int offset, double d)将double参数的字符串表示插入到此序列中。StringBufferinsert(int offset, float f)将float参数的字符串表示插入到此序列中。StringBufferinsert(int offset, int i)将第二个int参数的字符串表示插入到此序列中。StringBufferinsert(int offset, long l)将long参数的字符串表示插入到此序列中。StringBufferinsert(int dstOffset, CharSequence s)在此序列中插入指定的CharSequence。StringBufferinsert(int dstOffset, CharSequence s, int start, int end)在此序列中插入指定的CharSequence序列。StringBufferinsert(int offset, Object obj)将Object参数的字符串表示插入到此字符序列中。StringBufferinsert(int offset, String str)将字符串插入到此字符序列中。intlastIndexOf(String str)返回指定子字符串最后一次出现的字符串中的索引。intlastIndexOf(String str, int fromIndex)返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。intlength()返回长度(字符数)。intoffsetByCodePoints(int index, int codePointOffset)返回该序列中与indexcodePointOffset码点的索引。StringBufferreplace(int start, int end, String str)将此序列的子字符串中的字符替换为指定的String字符。StringBufferreverse()导致该字符序列被序列的相反代替。voidsetCharAt(int index, char ch)指定索引处的字符设置为ch。voidsetLength(int newLength)设置字符序列的长度。CharSequencesubSequence(int start, int end)返回一个新的字符序列,该序列是该序列的子序列。Stringsubstring(int start)返回一个新的String,其中包含此字符序列中当前包含的字符的子序列。Stringsubstring(int start, int end)返回一个新的String,其中包含此序列中当前包含的字符的子序列。StringtoString()返回表示此顺序中的数据的字符串。voidtrimToSize()尝试减少用于字符序列的存储。-
Methods inherited from interface java.lang.CharSequence
chars, codePoints
-
-
-
-
构造方法详细信息
-
StringBuffer
public StringBuffer()
构造一个没有字符的字符串缓冲区,初始容量为16个字符。
-
StringBuffer
public StringBuffer(int capacity)
构造一个没有字符的字符串缓冲区和指定的初始容量。- 参数
-
capacity- 初始容量。 - 异常
-
NegativeArraySizeException- 如果capacity参数小于0。
-
StringBuffer
public StringBuffer(String str)
构造一个初始化为指定字符串内容的字符串缓冲区。 字符串缓冲区的初始容量为16加上字符串参数的长度。- 参数
-
str- 缓冲区的初始内容。
-
StringBuffer
public StringBuffer(CharSequence seq)
构造一个包含与指定的相同字符的字符串缓冲区CharSequence。 字符串缓冲区的初始容量为16加上CharSequence参数的长度。如果指定的
CharSequence的长度小于或等于零,则返回容量为16的空缓冲区。- 参数
-
seq- 要复制的顺序。 - 从以下版本开始:
- 1.5
-
-
方法详细信息
-
length
public int length()
返回长度(字符数)。- Specified by:
-
length在接口CharSequence - 结果
- 当前由此对象表示的字符序列的长度
-
capacity
public int capacity()
返回当前容量。 容量是新插入字符可用的存储量,超过此值将进行分配。- 结果
- 当前的容量
-
ensureCapacity
public void ensureCapacity(int minimumCapacity)
确保容量至少等于规定的最小值。 如果当前容量小于参数,则会分配一个新的内部数组,容量更大。 新产能较大:-
minimumCapacity论证。 - 两倍的旧容量,加上
2。
minimumCapacity参数为非正态,则此方法不执行任何操作,只需返回。 请注意,此对象的后续操作可以将实际容量降低到低于此处所请求的容量。- 参数
-
minimumCapacity- 最低所需容量。
-
-
trimToSize
public void trimToSize()
- 从以下版本开始:
- 1.5
-
setLength
public void setLength(int newLength)
设置字符序列的长度。 该序列被更改为一个新的字符序列,其长度由参数指定。 对于小于每非负索引knewLength,在新的字符序列的索引k处的字符是相同的在旧序列索引k如果k小于原字符序列的长度的字符; 否则为空字符'\u0000'。 换句话说,如果newLength参数小于当前长度,则长度将更改为指定的长度。如果
newLength参数大于或等于当前长度,则会附加足够的空字符('\u0000'),以使长度成为newLength参数。newLength参数必须大于或等于0。- 参数
-
newLength- 新的长度 - 异常
-
IndexOutOfBoundsException- 如果newLength参数为负数。 - 另请参见:
-
length()
-
charAt
public char charAt(int index)
返回指定索引处的此序列中的char值。 第一个char值是索引0,下一个索引为1,依此类推,就像在数组索引中一样。索引参数必须大于或等于
0,并小于此序列的长度。如果由索引指定的
char值为surrogate ,则返回替代值。- Specified by:
-
charAt在接口CharSequence - 参数
-
index-index的指数char。 - 结果
-
指定的指数为
char。 - 异常
-
IndexOutOfBoundsException- 如果index为负数或大于或等于length()。 - 另请参见:
-
length()
-
codePointAt
public int codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。 该索引指的是char值(Unicode码单位),范围从0到length()- 1。如果在给定索引处指定的
char值处于高代理范围内,则以下索引小于该序列的长度,并且下列索引处的char值处于低代理范围内,则补码代码点相应的这个代理对被退回。 否则返回给定索引处的char值。- 参数
-
index- 指数为char值 - 结果
-
字符的代码点值在
index - 异常
-
IndexOutOfBoundsException- 如果index参数为负数或不小于此序列的长度。 - 从以下版本开始:
- 1.5
-
codePointBefore
public int codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。 索引指的是char值(Unicode代码单位),范围从1到length()。如果
char在值(index - 1)处于低代理项范围,(index - 2)不为负,并且char在值(index - 2)处于高代理项范围,则返回代理对的补充代码点值。 如果char在值index - 1是未配对的低代理或一个高代理,则返回所述替代值。- 参数
-
index- 应该返回的代码点后面的索引 - 结果
- Unicode代码点值在给定索引之前。
- 异常
-
IndexOutOfBoundsException- 如果index参数小于1或大于此序列的长度。 - 从以下版本开始:
- 1.5
-
codePointCount
public int codePointCount(int beginIndex, int endIndex)返回此序列指定文本范围内的Unicode代码点数。 文本范围始于指定beginIndex并延伸到char在索引endIndex - 1。 因此,文本范围的长度(chars)为endIndex-beginIndex。 该序列中的未配对代理计数为每个代码点。- 参数
-
beginIndex- 索引到第一个char的文本范围。 -
endIndex- 指数最后一个char之后的文字范围。 - 结果
- 指定文本范围内的Unicode代码点数
- 异常
-
IndexOutOfBoundsException- 如果beginIndex为负数,或endIndex大于此序列的长度,或beginIndex大于endIndex。 - 从以下版本开始:
- 1.5
-
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset)返回此序列中的索引,该索引与给定的indexcodePointOffset代码点。 由index和codePointOffset给出的文本范围内的非配对替代品每个作为一个代码点。- 参数
-
index- 要偏移的索引 -
codePointOffset- 代码点的偏移量 - 结果
- 该序列中的索引
- 异常
-
IndexOutOfBoundsException- 如果index为负或大于该序列的长度,或者如果codePointOffset为正,并且从index开始的子index具有少于codePointOffset码点,或者如果codePointOffset为负,并且index之前的子index小于绝对值codePointOffset代码点。 - 从以下版本开始:
- 1.5
-
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)字符从该序列复制到目标字符阵列dst。 要复制的第一个字符是索引srcBegin; 要复制的最后一个字符在索引srcEnd-1。 要复制的字符总数为srcEnd-srcBegin。 字符被复制到dst的子阵列,从索引dstBegin开始,并以索引结尾:dstbegin + (srcEnd-srcBegin) - 1- 参数
-
srcBegin- 在这个偏移开始复制。 -
srcEnd- 在此偏移处停止复制。 -
dst- 将数据复制到的数组。 -
dstBegin- 偏移到dst。 - 异常
-
IndexOutOfBoundsException- 如果满足以下条件:-
srcBegin是否定的 -
dstBegin为负数 -
srcBegin参数大于srcEnd参数。 -
srcEnd大于this.length()。 -
dstBegin+srcEnd-srcBegin大于dst.length
-
-
setCharAt
public void setCharAt(int index, char ch)指定索引处的字符设置为ch。 该序列被改变以表示一个新的字符序列,其是相同的原字符序列,不同之处在于它包含字符ch在位置index。索引参数必须大于或等于
0,并且小于此序列的长度。- 参数
-
index- 要修改的字符的索引。 -
ch- 新角色。 - 异常
-
IndexOutOfBoundsException- 如果index为负数或大于或等于length()。 - 另请参见:
-
length()
-
append
public StringBuffer append(Object obj)
追加Object参数的字符串表示形式。整体效果就好像通过方法
String.valueOf(Object)将参数转换为字符串,并且该字符串的字符然后是这个字符序列的appended。- 参数
-
obj- 一个Object。 - 结果
- 对这个对象的引用。
-
append
public StringBuffer append(String str)
将指定的字符串附加到此字符序列。附加
String参数的字符,以便String参数的长度增加此序列的长度。 如果str为null,则附加四个字符"null"。在执行
append方法之前,让n为该字符序列的长度。 那么如果k小于n ,则新字符序列中索引k处的字符等于旧字符序列中索引k处的字符; 否则,它等于参数str中的索引kn处的字符。- 参数
-
str- 一个字符串。 - 结果
- 对这个对象的引用。
-
append
public StringBuffer append(StringBuffer sb)
追加指定的StringBuffer到这个序列。StringBuffer参数的字符按顺序追加到StringBuffer的内容,将该StringBuffer的长度增加StringBuffer的长度。 如果sb是null,那么四个字符"null"附加到这个StringBuffer。令n为旧字符序列的长度,即
StringBuffer之前的append方法中的一个。 那么如果k小于n ,则新字符序列中索引k处的字符等于旧字符序列中索引k处的字符; 否则,它等于参数sb中的索引kn处的字符。此方法可同步
this目标对象,但不会在源上同步(sb)。- 参数
-
sb- 附加的StringBuffer。 - 结果
- 对这个对象的引用。
- 从以下版本开始:
- 1.4
-
append
public StringBuffer append(CharSequence s)
追加指定的CharSequence到这个序列。附加
CharSequence参数的字符,以便CharSequence参数的长度增加此序列的长度。该方法的结果与调用this.append(s,0,s.length())完全相同;
此方法可同步
this目标对象,但不会在源上同步(s)。如果
s为null,则附加四个字符"null"。- Specified by:
-
append在接口Appendable - 参数
-
s- 要追加的CharSequence。 - 结果
- 对这个对象的引用。
- 从以下版本开始:
- 1.5
-
append
public StringBuffer append(CharSequence s, int start, int end)
追加指定的序列CharSequence序列。从索引
start开始的参数s字符顺序附加到该序列的内容直到(排他)索引end。 该序列的长度增加值为end - start。在执行
append方法之前,让n为该字符序列的长度。 那么如果k小于n ,则该字符序列中的索引k处的字符变得等于该序列中索引k处的字符; 否则,它等于参数s中索引k + start-n处的s。如果
s为null,则该方法会附加字符,就像s参数是包含四个字符"null"的序列"null"。- Specified by:
-
append在接口Appendable - 参数
-
s- 要追加的顺序。 -
start- 要附加的子序列的起始索引。 -
end- 要附加的子序列的结束索引。 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException- 如果start为负数,或start大于end或end大于s.length() - 从以下版本开始:
- 1.5
-
append
public StringBuffer append(char[] str)
将char数组参数的字符串表示追加到此序列。数组参数的字符按顺序附加到此序列的内容。 该序列的长度增加参数的长度。
整体效果就好像通过方法
String.valueOf(char[])将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended。- 参数
-
str- 要附加的字符。 - 结果
- 对这个对象的引用。
-
append
public StringBuffer append(char[] str, int offset, int len)
将char数组参数的子阵列的字符串表示追加到此序列。从索引
offset开始的char阵列str字符按顺序附加到该序列的内容。 该序列的长度增加值为len。总体效果就好像通过方法
String.valueOf(char[],int,int)将参数转换为字符串,并且该字符串的字符然后是这个字符序列的appended。- 参数
-
str- 要附加的字符。 -
offset-第一的指数char追加。 -
len- 要追加的char的数量。 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException- 如果是offset < 0或len < 0或offset+len > str.length
-
append
public StringBuffer append(boolean b)
将boolean参数的字符串表示附加到序列中。整体效果就好像通过方法
String.valueOf(boolean)将参数转换为字符串,并且该字符串的字符然后是这个字符序列的appended。- 参数
-
b- aboolean。 - 结果
- 对这个对象的引用。
-
append
public StringBuffer append(char c)
将char参数的字符串表示追加到此序列。该参数附加到此序列的内容。 该序列的长度增加
1。整体效果就好像通过方法
String.valueOf(char)将参数转换为字符串,并且该字符串中的字符然后是该字符序列的appended。- Specified by:
-
append在接口Appendable - 参数
-
c- achar。 - 结果
- 对这个对象的引用。
-
append
public StringBuffer append(int i)
将int参数的字符串表示法附加到此序列。整体效果就好像通过方法
String.valueOf(int)将参数转换为字符串,并且该字符串的字符然后是这个字符序列的appended。- 参数
-
i- aint。 - 结果
- 对这个对象的引用。
-
appendCodePoint
public StringBuffer appendCodePoint(int codePoint)
将codePoint参数的字符串表示法附加到此序列。该参数附加到此序列的内容。 该序列的长度增加
Character.charCount(codePoint)。整体效果就好像通过方法
Character.toChars(int)将参数转换为char数组,并且该数组中的字符然后是该字符序列的appended。- 参数
-
codePoint- 一个Unicode代码点 - 结果
- 对这个对象的引用。
- 从以下版本开始:
- 1.5
-
append
public StringBuffer append(long lng)
将long参数的字符串表示追加到此序列。整体效果就好像通过方法
String.valueOf(long)将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended。- 参数
-
lng- along。 - 结果
- 对这个对象的引用。
-
append
public StringBuffer append(float f)
将float参数的字符串表示附加到此序列。整体效果就好像通过方法
String.valueOf(float)将参数转换为字符串,并且该字符串的字符然后是这个字符序列的appended。- 参数
-
f- afloat。 - 结果
- 对这个对象的引用。
-
append
public StringBuffer append(double d)
将double参数的字符串表示法附加到此序列。整体效果就好像通过方法
String.valueOf(double)将参数转换为字符串,并且该字符串的字符然后是这个字符序列的appended。- 参数
-
d- adouble。 - 结果
- 对这个对象的引用。
-
delete
public StringBuffer delete(int start, int end)
删除此序列的子字符串中的字符。 子串从指定的start开始,并且扩展到索引号为end - 1的字符,如果不存在这样的字符,则扩展到序列的末尾。 如果start等于end,则不作任何更改。- 参数
-
start- 开始索引,包括。 -
end- 结束索引,独家。 - 结果
- 这个对象。
- 异常
-
StringIndexOutOfBoundsException- 如果start为负数,大于length(),或大于end。 - 从以下版本开始:
- 1.2
-
deleteCharAt
public StringBuffer deleteCharAt(int index)
按照该顺序删除指定位置的char。 该序列缩短了一个char。注意:如果给定索引处的字符是补充字符,则此方法不会删除整个字符。 如果需要的准确处理增补字符,确定数量
char通过调用删除Character.charCount(thisSequence.codePointAt(index)),其中thisSequence是此序列。- 参数
-
index- 索引char删除 - 结果
- 这个对象。
- 异常
-
StringIndexOutOfBoundsException- 如果index为负数或大于或等于length()。 - 从以下版本开始:
- 1.2
-
replace
public StringBuffer replace(int start, int end, String str)
将此序列的子字符串中的字符替换为指定的String字符。 子start始于指定的start并扩展到索引号为end - 1的字符,如果不存在这样的字符,则扩展到序列的末尾。 首先删除子串中的字符,然后在String插入指定的start。 (如果需要,此序列将被延长以容纳指定的字符串。)- 参数
-
start- 开始索引,包括。 -
end- 结束索引,独家。 -
str- 将替换以前内容的字符串。 - 结果
- 这个对象。
- 异常
-
StringIndexOutOfBoundsException- 如果start为负,大于length()或大于end。 - 从以下版本开始:
- 1.2
-
substring
public String substring(int start)
返回一个新的String,其中包含此字符序列中当前包含的字符的子序列。 子串从指定的索引开始,并延伸到该序列的末尾。- 参数
-
start- 开始索引,包括。 - 结果
- 新的字符串。
- 异常
-
StringIndexOutOfBoundsException- 如果start小于零或大于此对象的长度。 - 从以下版本开始:
- 1.2
-
subSequence
public CharSequence subSequence(int start, int end)
返回一个新的字符序列,该序列是该序列的子序列。调用此方法的形式
行为与调用完全相同sb.subSequence(begin, end)提供这种方法,使该类可以实现sb.substring(begin, end)CharSequence接口。- Specified by:
-
subSequence在接口CharSequence - 参数
-
start- 起始索引(含)。 -
end- 结束索引,排他。 - 结果
- 指定的子序列。
- 异常
-
IndexOutOfBoundsException- 如果start或end为负数,如果end大于length(),或者如果start大于end - 从以下版本开始:
- 1.4
-
substring
public String substring(int start, int end)
返回一个新的String,其中包含此序列中当前包含的字符的子序列。 子串从指定的start开始,并扩展到索引号为end - 1的字符。- 参数
-
start- 开始索引,包括。 -
end- 结束索引,独家。 - 结果
- 新的字符串。
- 异常
-
StringIndexOutOfBoundsException- 如果start或end为负数或大于length(),或start大于end。 - 从以下版本开始:
- 1.2
-
insert
public StringBuffer insert(int index, char[] str, int offset, int len)
将str数组参数的子阵列的字符串表示插入到此序列中。 子阵列从指定的offset开始,并扩展lenchars。 子阵列的字符在index所示的位置被插入到该序列中。 该序列的长度增加lenchars。- 参数
-
index- 插入子阵列的位置。 -
str- Achar数组。 -
offset- 要插入的子阵列中的第一个char的索引。 -
len- 要插入的子阵列中的char的数量。 - 结果
- 这个对象
- 异常
-
StringIndexOutOfBoundsException- 如果index为负数或大于length(),或offset或len为负数,或(offset+len)大于str.length。 - 从以下版本开始:
- 1.2
-
insert
public StringBuffer insert(int offset, Object obj)
将Object参数的字符串表示插入到此字符序列中。整体效果就好像第二个参数通过方法
String.valueOf(Object)转换为一个字符串,并且该字符串的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,小于或等于该序列的length 。- 参数
-
offset- 偏移。 -
obj- aObject。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
public StringBuffer insert(int offset, String str)
将字符串插入到此字符序列中。String参数的字符按顺序插入到指定偏移量的该序列中,向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数的长度。 如果str为null,则四个字符"null"插入到该序列中。新字符序列中索引k处的字符等于:
- 旧字符序列中索引k处的字符,如果k小于
offset - 参数
str中索引k-offset处的字符,如果k不小于offset但小于offset+str.length() - 在旧字符序列中的索引k
-str.length()处的字符,如果k不小于offset+str.length()
offset参数必须大于或等于0,小于或等于此序列的length 。- 参数
-
offset- 偏移。 -
str- 一个字符串。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移无效。
- 旧字符序列中索引k处的字符,如果k小于
-
insert
public StringBuffer insert(int offset, char[] str)
在此序列中插入char数组参数的字符串表示形式。数组参数的字符在
offset所示的位置被插入到该序列的内容中。 该序列的长度增加参数的长度。整体效果就好像第二个参数通过方法
String.valueOf(char[])转换为一个字符串,并且该字符串的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,小于或等于此序列的length 。- 参数
-
offset- 偏移量。 -
str- 一个字符数组。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
public StringBuffer insert(int dstOffset, CharSequence s)
在此序列中插入指定的CharSequence。CharSequence参数的字符CharSequence插入到指定偏移量的该序列中,向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数s的长度。该方法的结果与调用该对象的
insert(dstOffset,s,0,s.length())方法完全相同 。如果
s为null,则四个字符"null"插入到该序列中。- 参数
-
dstOffset- 偏移量。 -
s- 要插入的序列 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException- 如果偏移量无效。 - 从以下版本开始:
- 1.5
-
insert
public StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
在此序列中插入指定的CharSequence序列。参数的子序列
s通过指定start和end被插入,以便成在指定的目的地偏移该序列中,该位置上述最初向上运动的任何字符。 该序列的长度增加end - start。该序列中索引k处的字符等于:
- 如果k小于
dstOffset,则该序列中索引k处的字符 - 在索引k处的字符
+start-dstOffset在参数s,如果k大于或等于dstOffset但小于dstOffset+end-start - 在该序列中的索引k
-(end-start)处的字符,如果k大于或等于dstOffset+end-start
dstOffset参数必须大于或等于0,小于或等于此序列的length 。起始参数必须是非负数,不得大于
end。结束参数必须大于或等于
start,小于或等于s的长度。如果
s为null,则该方法插入字符,就像s参数是包含四个字符"null"的序列"null"。- 参数
-
dstOffset- 此序列中的偏移量。 -
s- 要插入的序列。 -
start- 要插入的子序列的起始索引。 -
end- 要插入的子序列的结束索引。 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException- 如果dstOffset为负数或大于this.length(),或start或end为负数,或start为大于end或end大于s.length() - 从以下版本开始:
- 1.5
- 如果k小于
-
insert
public StringBuffer insert(int offset, boolean b)
将boolean参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(boolean)转换为一个字符串,并且该字符串的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,小于或等于此序列的length 。- 参数
-
offset- 偏移量。 -
b- aboolean。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移无效。
-
insert
public StringBuffer insert(int offset, char c)
将char参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(char)转换为一个字符串,并且该字符串中的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,小于或等于该序列的length 。- 参数
-
offset- 偏移。 -
c- achar。 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException- 如果偏移量无效。
-
insert
public StringBuffer insert(int offset, int i)
将第二个int参数的字符串表示插入到此序列中。整体效果就好像第二个参数通过方法
String.valueOf(int)转换为一个字符串,并且该字符串的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,小于或等于该序列的length 。- 参数
-
offset- 偏移。 -
i- aint。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
public StringBuffer insert(int offset, long l)
将long参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(long)转换为一个字符串,然后该字符串的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,小于或等于该序列的length 。- 参数
-
offset- 偏移。 -
l- along。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
public StringBuffer insert(int offset, float f)
将float参数的字符串表示插入到此序列中。整体效果就好像第二个参数通过方法
String.valueOf(float)转换为一个字符串,并且该字符串的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,并且小于或等于此序列的length 。- 参数
-
offset- 偏移。 -
f- afloat。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
public StringBuffer insert(int offset, double d)
将double参数的字符串表示插入到此序列中。整体效果就好像第二个参数通过方法
String.valueOf(double)转换为一个字符串,并且该字符串的字符然后是inserted到指定的偏移量的这个字符序列。offset参数必须大于或等于0,小于或等于该序列的length 。- 参数
-
offset- 偏移量。 -
d- adouble。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移无效。
-
indexOf
public int indexOf(String str)
返回指定子字符串第一次出现的字符串内的索引。返回的索引是最小值
k,其中:如果没有this.toString().startsWith(str, k)k值,则返回-1。- 参数
-
str- 要搜索的子字符串。 - 结果
-
指定子字符串的首次出现的索引,如果没有这种情况,
-1。 - 从以下版本开始:
- 1.4
-
indexOf
public int indexOf(String str, int fromIndex)
返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。返回的索引是最小值
k,其中:如果没有k >= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)k值,则返回-1。- 参数
-
str- 要搜索的子字符串。 -
fromIndex- 从fromIndex开始搜索的索引。 - 结果
-
指定子串的第一次出现的索引,从指定的索引开始,如果没有此类事件,
-1。 - 从以下版本开始:
- 1.4
-
lastIndexOf
public int lastIndexOf(String str)
返回指定子字符串最后一次出现的字符串中的索引。 空字符串“”的最后一次出现被认为发生在索引值this.length()。返回的指数是
k,其中:如果没有this.toString().startsWith(str, k)k值,则返回-1。- 参数
-
str- 要搜索的子字符串。 - 结果
-
指定子字符串的最后一次出现的索引,如果没有发生这种情况,
-1。 - 从以下版本开始:
- 1.4
-
lastIndexOf
public int lastIndexOf(String str, int fromIndex)
返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。返回的索引是
k:如果没有这样的价值k <= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)k存在,那么-1返回。- 参数
-
str- 要搜索的子字符串。 -
fromIndex- 开始搜索的索引。 - 结果
-
指定子字符串的最后一次出现的索引,从指定的索引向后搜索,如果没有此类事件,
-1。 - 从以下版本开始:
- 1.4
-
reverse
public StringBuffer reverse()
导致该字符序列被序列的相反代替。 如果序列中包含任何替代对,则将它们视为单个字符进行反向操作。 因此,高低替代品的顺序从未被扭转过。 在执行reverse方法之前,让n为该字符序列的字符长度(不是char的长度)。 那么新字符序列中的索引k处的字符等于旧字符序列中的索引nk-1处的字符。请注意,相反的操作可能会导致在手术之前产生不配对的低代谢和高代谢的替代对。 例如,反转“\ uDC00 \ uD800”会生成“\ uD800 \ uDC00”,它是一个有效的代理对。
- 结果
- 对这个对象的引用。
- 从以下版本开始:
- 1.0.2
-
toString
public String toString()
返回表示此顺序中的数据的字符串。 新的String对象被分配并初始化为包含当前由该对象表示的字符序列。 然后返回String。 此序列的后续更改不影响String的内容。- Specified by:
-
toString在接口CharSequence - 结果
- 这个字符序列的字符串表示。
-
chars
public IntStream chars()
返回一个int的数据流,从这个序列中扩展char值。 映射到surrogate code point的任何字符都是通过未解释的。当终端流操作开始时(特别地,对于可变序列,流的分流器是late-binding ),流与该序列绑定。 如果序列在该操作期间被修改,则结果是未定义的。
- Specified by:
-
chars在接口CharSequence - 结果
- 这个序列中的char值的IntStream
- 从以下版本开始:
- 9
-
codePoints
public IntStream codePoints()
从此序列返回码流值。 在序列中遇到的任何代理对被组合,如同通过Character.toCodePoint ,并将结果传递给流。 任何其他代码单元,包括普通的BMP字符,未配对代理和未定义的代码单元,都将零扩展到int值,然后传递给流。当终端流操作开始时(特别地,对于可变序列,流的分流器是late-binding ),流与该序列绑定。 如果序列在该操作期间被修改,则结果是未定义的。
- Specified by:
-
codePoints在接口CharSequence - 结果
- Unicode序列的IntStream从这个序列中指向
- 从以下版本开始:
- 9
-
-