- 所有已实现的接口:
-
Serializable
,Appendable
,CharSequence
,Comparable<StringBuffer>
String
,但可以被修改。在任何时刻,它包含某个特定的字符序列,但是序列的长度和内容可以通过某些方法调用进行更改。
字符串缓冲区可以安全地被多个线程使用。方法在必要时进行了同步,以便所有对任何特定实例的操作表现得好像它们按照与每个涉及的单个线程所做的方法调用顺序一致的某个串行顺序发生。
StringBuffer
的主要操作是append
和insert
方法,这两个方法被重载,以接受任何类型的数据。每个方法都有效地将给定的数据转换为字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append
方法总是在缓冲区的末尾添加这些字符;insert
方法在指定点添加字符。
例如,如果z
引用一个当前内容为"start"
的字符串缓冲区对象,那么方法调用z.append("le")
将导致字符串缓冲区包含"startle"
,而z.insert(4, "le")
将改变字符串缓冲区以包含"starlet"
。
通常情况下,如果sb引用StringBuffer
的一个实例,则sb.append(x)
的效果与sb.insert(sb.length(), x)
相同。
每个字符串缓冲区都有一个容量。只要字符串缓冲区中包含的字符序列的长度不超过容量,就不需要分配新的内部缓冲区数组。如果内部缓冲区溢出,它会自动变大。
除非另有说明,在此类中向构造函数或方法传递null
参数将导致抛出NullPointerException
。
从JDK 5版本开始,这个类已经增加了一个专为单个线程使用的等效类,StringBuilder
。通常应该优先使用StringBuilder
类,因为它支持所有相同的操作,但速度更快,因为它不进行同步。
- API注释:
-
StringBuffer
实现了Comparable
,但没有覆盖equals
。因此,StringBuffer
的自然排序与equals不一致。如果StringBuffer
对象用作SortedMap
中的键或SortedSet
中的元素,则应谨慎使用。有关更多信息,请参见Comparable
、SortedMap
或SortedSet
。 - 自版本:
- 1.0
- 参见:
-
Constructor Summary
ConstructorDescription构造一个没有字符且初始容量为16个字符的字符串缓冲区。StringBuffer
(int capacity) 构造一个没有字符且指定初始容量的字符串缓冲区。StringBuffer
(CharSequence seq) 构造一个包含与指定CharSequence
相同字符的字符串缓冲区。StringBuffer
(String str) 构造一个初始化为指定字符串内容的字符串缓冲区。 -
Method Summary
Modifier and TypeMethodDescriptionappend
(boolean b) 将boolean
参数的字符串表示附加到序列中。append
(char c) 将char
参数的字符串表示附加到此序列中。append
(char[] str) 将char
数组参数的字符串表示附加到此序列中。append
(char[] str, int offset, int len) 将char
数组参数的子数组的字符串表示附加到此序列中。append
(double d) 将double
参数的字符串表示附加到此序列中。append
(float f) 将float
参数的字符串表示附加到此序列中。append
(int i) 将int
参数的字符串表示附加到此序列中。append
(long lng) 将long
参数的字符串表示附加到此序列中。将指定的CharSequence
附加到此序列中。append
(CharSequence s, int start, int end) 将指定CharSequence
的子序列附加到此序列中。将Object
参数的字符串表示附加到此序列中。将指定的字符串附加到此字符序列中。append
(StringBuffer sb) 将指定的StringBuffer
附加到此序列中。appendCodePoint
(int codePoint) 将codePoint
参数的字符串表示附加到此序列中。int
capacity()
返回当前容量。char
charAt
(int index) 返回指定索引处此序列中的char
值。chars()
返回从此序列中的char
值零扩展的int
流。int
codePointAt
(int index) 返回指定索引处的字符(Unicode代码点)。int
codePointBefore
(int index) 返回指定索引之前的字符(Unicode代码点)。int
codePointCount
(int beginIndex, int endIndex) 返回此序列的指定文本范围中的Unicode代码点数。返回从此序列中的代码点值的流。int
compareTo
(StringBuffer another) 按字典顺序比较两个StringBuffer
实例。delete
(int start, int end) 删除此序列中子字符串中的字符。deleteCharAt
(int index) 删除此序列中指定位置的char
。void
ensureCapacity
(int minimumCapacity) 确保容量至少等于指定的最小值。void
getChars
(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此序列复制到目标字符数组dst
中。int
返回指定子字符串第一次出现在此字符串中的索引。int
返回指定索引开始的指定子字符串第一次出现在此字符串中的索引。insert
(int offset, boolean b) 将boolean
参数的字符串表示插入到此序列中。insert
(int offset, char c) 将char
参数的字符串表示插入到此序列中。insert
(int offset, char[] str) 将char
数组参数的字符串表示插入到此序列中。insert
(int index, char[] str, int offset, int len) 将str
数组参数的子数组的字符串表示插入到此序列中。insert
(int offset, double d) 将double
参数的字符串表示插入到此序列中。insert
(int offset, float f) 将float
参数的字符串表示插入到此序列中。insert
(int offset, int i) 将第二个int
参数的字符串表示插入到此序列中。insert
(int offset, long l) 将long
参数的字符串表示插入到此序列中。insert
(int dstOffset, CharSequence s) 将CharSequence
参数插入到此序列中。insert
(int dstOffset, CharSequence s, int start, int end) 将指定CharSequence
的子序列插入到此序列中。将Object
参数插入到此字符序列中。将字符串插入到此字符序列中。int
lastIndexOf
(String str) 返回指定子字符串最后一次出现在此字符串中的索引。int
lastIndexOf
(String str, int fromIndex) 返回指定索引开始向后搜索指定子字符串最后一次出现在此字符串中的索引。int
length()
返回长度(字符数)。int
offsetByCodePoints
(int index, int codePointOffset) 返回给定index
偏移codePointOffset
代码点后的此序列中的索引。repeat
(int codePoint, int count) 将count
个codePoint
参数的字符串表示重复附加到此序列中。repeat
(CharSequence cs, int count) 将count
个指定的CharSequence
cs
的副本附加到此序列中。用指定String
中的字符替换此序列中子字符串中的字符。reverse()
使此字符序列被其反向序列替换。void
setCharAt
(int index, char ch) 指定索引处的字符设置为ch
。void
setLength
(int newLength) 设置字符序列的长度。subSequence
(int start, int end) 返回此序列的子序列的新字符序列。substring
(int start) 返回一个包含当前字符序列中当前包含的字符子序列的新String
。substring
(int start, int end) 返回一个包含当前序列中当前包含的字符子序列的新String
。toString()
返回表示此序列中数据的字符串。void
尝试减少用于字符序列的存储。Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods declared in interface java.lang.CharSequence
chars, codePoints, isEmpty
-
Constructor Details
-
StringBuffer
public StringBuffer()构造一个没有字符且初始容量为16个字符的字符串缓冲区。 -
StringBuffer
public StringBuffer(int capacity) 构造一个没有字符的字符串缓冲区,并指定初始容量。- 参数:
-
capacity
- 初始容量。 - 抛出:
-
NegativeArraySizeException
- 如果capacity
参数小于0
。
-
StringBuffer
构造一个字符串缓冲区,其内容初始化为指定字符串的内容。字符串缓冲区的初始容量为16
加上字符串参数的长度。- 参数:
-
str
- 缓冲区的初始内容。
-
StringBuffer
构造一个包含与指定CharSequence
相同字符的字符串缓冲区。字符串缓冲区的初始容量为16
加上CharSequence
参数的长度。- 参数:
-
seq
- 要复制的序列。 - 自1.5起:
- 1.5
-
-
Method Details
-
compareTo
按字典顺序比较两个StringBuffer
实例。此方法遵循与CharSequence.compare(this, another)方法中定义的字典比较规则相同。对于更精细的、区域敏感的字符串比较,请参考
Collator
。- 指定者:
-
compareTo
在接口Comparable<StringBuffer>
- 实现注意:
-
此方法在
this
,当前对象上同步,但不在与this StringBuffer
进行比较的StringBuffer another
上同步。 - 参数:
-
another
- 要比较的StringBuffer
- 返回:
-
如果此
StringBuffer
包含与参数StringBuffer
相同的字符序列,则返回值为0
;如果此StringBuffer
在字典上小于StringBuffer
参数,则返回负整数;如果此StringBuffer
在字典上大于StringBuffer
参数,则返回正整数。 - 自11起:
- 11
-
length
public int length()返回长度(字符数)。- 指定者:
-
length
在接口CharSequence
- 返回:
- 当前对象当前表示的字符序列的长度
-
capacity
public int capacity()返回当前容量。容量是可以存储的字符数(包括已写入的字符),超过该容量将进行分配。- 返回:
- 当前容量
-
ensureCapacity
public void ensureCapacity(int minimumCapacity) 确保容量至少等于指定的最小容量。如果当前容量小于参数,则将分配具有更大容量的新内部数组。新容量是以下两者中较大的一个:- 最小容量参数。
- 旧容量的两倍,再加上
2
。
minimumCapacity
参数为非正数,则此方法不执行任何操作,只是返回。请注意,此对象上的后续操作可能会将实际容量降低到此处请求的容量以下。- 参数:
-
minimumCapacity
- 所需的最小容量。
-
trimToSize
public void trimToSize()尝试减少用于字符序列的存储。如果缓冲区大于必要来容纳其当前字符序列的大小,则可以调整大小以变得更加高效。调用此方法可能会影响后续调用capacity()
方法返回的值,但不是必需的。- 自1.5起:
- 1.5
-
setLength
public void setLength(int newLength) 设置字符序列的长度。序列更改为由参数指定长度的新字符序列。对于小于newLength
的每个非负索引k,新字符序列中索引k处的字符与旧序列中索引k处的字符相同,如果k小于旧字符序列的长度;否则,它是空字符'\u0000'
。换句话说,如果newLength
参数小于当前长度,则长度更改为指定的长度。如果
newLength
参数大于或等于当前长度,则会附加足够的空字符('\u0000'
),使长度成为newLength
参数。newLength
参数必须大于或等于0
。- 参数:
-
newLength
- 新长度 - 抛出:
-
IndexOutOfBoundsException
- 如果newLength
参数为负数。 - 参见:
-
charAt
public char charAt(int index) 返回指定索引处此序列中的char
值。第一个char
值在索引0
处,下一个在索引1
处,依此类推,就像数组索引一样。索引参数必须大于或等于
0
,且小于此序列的长度。如果索引处指定的
char
值是代理项,则返回代理值。- 指定者:
-
charAt
在接口CharSequence
- 参数:
-
index
- 所需char
值的索引。 - 返回:
-
指定索引处的
char
值。 - 抛出:
-
IndexOutOfBoundsException
- 如果index
为负数或大于或等于length()
。 - 参见:
-
codePointAt
public int codePointAt(int index) 返回指定索引处的字符(Unicode代码点)。索引是指char
值(Unicode代码单元),范围从0
到CharSequence.length()
- 1
。如果给定索引处指定的
char
值在高代理项范围内,则以下一个索引小于此序列的长度,并且以下一个索引处的char
值在低代理项范围内,则返回对应于此代理对的补充代码点。否则,返回给定索引处的char
值。- 参数:
-
index
-char
值的索引 - 返回:
-
在
index
处的字符的代码点值 - 抛出:
-
IndexOutOfBoundsException
- 如果index
参数为负数或不小于此序列的长度。 - 自1.5起:
- 1.5
-
codePointBefore
public int codePointBefore(int index) 返回指定索引之前的字符(Unicode代码点)。索引是指char
值(Unicode代码单元),范围从1
到CharSequence.length()
。如果
(index - 1)
处的char
值在低代理项范围内,(index - 2)
不为负数,并且(index - 2)
处的char
值在高代理项范围内,则返回代理对的补充代码点值。如果index - 1
处的char
值是未配对的低代理项或高代理项,则返回代理值。- 参数:
-
index
- 应返回的代码点之后的索引 - 返回:
- 给定索引之前的Unicode代码点值。
- 抛出:
-
IndexOutOfBoundsException
- 如果index
参数小于1或大于此序列的长度。 - 自1.5起:
- 1.5
-
codePointCount
public int codePointCount(int beginIndex, int endIndex) 返回此序列的指定文本范围内的Unicode代码点数。文本范围从指定的beginIndex
开始,延伸到索引endIndex - 1
处的char
。因此,文本范围的长度(以char
为单位)为endIndex-beginIndex
。此序列中的未配对代理项将计为一个代码点。- 参数:
-
beginIndex
- 文本范围的第一个char
的索引。 -
endIndex
- 文本范围的最后一个char
之后的索引。 - 返回:
- 指定文本范围内的Unicode代码点数
- 抛出:
-
IndexOutOfBoundsException
- 如果beginIndex
为负数,或endIndex
大于此序列的长度,或beginIndex
大于endIndex
。 - 自1.5起:
- 1.5
-
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset) 返回此序列中与给定index
偏移codePointOffset
代码点的索引。在由index
和codePointOffset
给定的文本范围内的未配对代理项将计为一个代码点。- 参数:
-
index
- 要偏移的索引 -
codePointOffset
- 代码点的偏移量 - 返回:
- 在此序列中的索引
- 抛出:
-
IndexOutOfBoundsException
- 如果index
为负数或大于此序列的长度,或者如果codePointOffset
为正数且以index
开头的子序列的代码点少于codePointOffset
,或者如果codePointOffset
为负数且以index
之前的子序列的代码点少于codePointOffset
的绝对值。 - 自1.5起:
- 1.5
-
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 从此序列中复制字符到目标字符数组dst
。要复制的第一个字符位于索引srcBegin
处;要复制的最后一个字符位于索引srcEnd-1
处。要复制的字符总数为srcEnd-srcBegin
。将字符复制到从索引dstBegin
开始到索引结束的dst
的子数组: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
。此序列被更改为表示与旧字符序列相同的新字符序列,只是在位置index
处包含字符ch
。索引参数必须大于或等于
0
,且小于此序列的长度。- 参数:
-
index
- 要修改的字符的索引。 -
ch
- 新字符。 - 抛出:
-
IndexOutOfBoundsException
- 如果index
为负数或大于或等于length()
。 - 参见:
-
append
追加Object
参数的字符串表示形式。总体效果就像参数通过方法
String.valueOf(Object)
转换为字符串,然后该字符串的字符被追加
到此字符序列中。- 参数:
-
obj
- 一个Object
。 - 返回:
- 对此对象的引用。
-
append
将指定的字符串追加到此字符序列。按顺序追加
String
参数的字符,增加此序列的长度等于参数的长度。如果str
为null
,则追加四个字符"null"
。设n为执行
append
方法之前此字符序列的长度。然后新字符序列中索引k处的字符等于旧字符序列中索引k处的字符,如果k小于n;否则,它等于参数str
中索引k-n处的字符。- 参数:
-
str
- 一个字符串。 - 返回:
- 对此对象的引用。
-
append
将指定的StringBuffer
追加到此序列。按顺序将
StringBuffer
参数的字符追加到此StringBuffer
的内容中,增加此StringBuffer
的长度等于参数的长度。如果sb
为null
,则追加四个字符"null"
到此StringBuffer
。设n为旧字符序列的长度,即在执行
append
方法之前包含在StringBuffer
中的字符序列的长度。然后新字符序列中索引k处的字符等于旧字符序列中索引k处的字符,如果k小于n;否则,它等于参数sb
中索引k-n处的字符。此方法在目标对象
this
上同步,但不在源对象(sb
)上同步。- 参数:
-
sb
- 要追加的StringBuffer
。 - 返回:
- 对此对象的引用。
- 自1.4起:
- 1.4
-
append
将指定的CharSequence
追加到此序列。按顺序追加
CharSequence
参数的字符,增加此序列的长度等于参数的长度。此方法的结果与调用此.append(s, 0, s.length());的效果完全相同。
此方法在目标对象
this
上同步,但不在源对象(s
)上同步。如果
s
为null
,则追加四个字符"null"
。- 指定者:
-
append
在接口Appendable
中 - 参数:
-
s
- 要追加的CharSequence
。 - 返回:
- 对此对象的引用。
- 自1.5起:
- 1.5
-
append
将指定CharSequence
的子序列追加到此序列。从参数
s
的索引start
开始的字符按顺序追加到此序列的内容,直到(不包括)索引end
。此序列的长度增加了end - start
的值。设n为执行
append
方法之前此字符序列的长度。然后此字符序列中索引k处的字符变为等于此字符序列中索引k处的字符,如果k小于n;否则,它等于参数s
中索引k+start-n处的字符。如果
s
为null
,则此方法追加字符,就好像s参数是包含四个字符"null"
的序列。- 指定者:
-
append
在接口Appendable
中 - 参数:
-
s
- 要追加的序列。 -
start
- 要追加的子序列的起始索引。 -
end
- 要追加的子序列的结束索引。 - 返回:
- 对此对象的引用。
- 抛出:
-
IndexOutOfBoundsException
- 如果start
为负数,或start
大于end
或end
大于s.length()
- 自1.5起:
- 1.5
-
append
将char
数组参数的字符串表示形式追加到此序列。按顺序将数组参数的字符追加到此序列的内容中。此序列的长度增加了参数的长度。
总体效果就像参数通过方法
String.valueOf(char[])
转换为字符串,然后该字符串的字符被追加
到此字符序列中。- 参数:
-
str
- 要追加的字符。 - 返回:
- 对此对象的引用。
-
append
将char
数组参数的子数组的字符串表示形式追加到此序列。从索引
offset
开始的char
数组str
的字符按顺序追加到此序列的内容中。此序列的长度增加了len
的值。总体效果就像参数通过方法
String.valueOf(char[],int,int)
转换为字符串,然后该字符串的字符被追加
到此字符序列中。- 参数:
-
str
- 要追加的字符。 -
offset
- 要追加的第一个char
的索引。 -
len
- 要追加的char
的数量。 - 返回:
- 对此对象的引用。
- 抛出:
-
IndexOutOfBoundsException
- 如果offset < 0
或len < 0
或offset+len > str.length
-
append
将boolean
参数的字符串表示形式追加到序列中。总体效果就像参数通过方法
String.valueOf(boolean)
转换为字符串,然后该字符串的字符被追加
到此字符序列中。- 参数:
-
b
- 一个boolean
。 - 返回:
- 对此对象的引用。
-
append
将char
参数的字符串表示附加到此序列。参数附加到此序列的内容。此序列的长度增加
1
。总体效果与通过方法
String.valueOf(char)
将参数转换为字符串,然后将该字符串中的字符附加
到此字符序列中完全相同。- 指定者:
-
append
在接口Appendable
- 参数:
-
c
- 一个char
。 - 返回:
- 对此对象的引用。
-
append
将int
参数的字符串表示附加到此序列。总体效果与通过方法
String.valueOf(int)
将参数转换为字符串,然后将该字符串的字符附加
到此字符序列中完全相同。- 参数:
-
i
- 一个int
。 - 返回:
- 对此对象的引用。
-
appendCodePoint
将codePoint
参数的字符串表示附加到此序列。参数附加到此序列的内容。此序列的长度增加
Character.charCount(codePoint)
。总体效果与通过方法
Character.toChars(int)
将参数转换为char
数组,然后将该数组中的字符附加
到此字符序列中完全相同。- 参数:
-
codePoint
- Unicode代码点 - 返回:
- 对此对象的引用。
- 自:
- 1.5
-
append
将long
参数的字符串表示附加到此序列。总体效果与通过方法
String.valueOf(long)
将参数转换为字符串,然后将该字符串的字符附加
到此字符序列中完全相同。- 参数:
-
lng
- 一个long
。 - 返回:
- 对此对象的引用。
-
append
将float
参数的字符串表示附加到此序列。总体效果与通过方法
String.valueOf(float)
将参数转换为字符串,然后将该字符串的字符附加
到此字符序列中完全相同。- 参数:
-
f
- 一个float
。 - 返回:
- 对此对象的引用。
-
append
将double
参数的字符串表示附加到此序列。总体效果与通过方法
String.valueOf(double)
将参数转换为字符串,然后将该字符串的字符附加
到此字符序列中完全相同。- 参数:
-
d
- 一个double
。 - 返回:
- 对此对象的引用。
-
delete
删除此序列的子字符串中的字符。子字符串从指定的start
开始,延伸到索引end - 1
处的字符,或者如果不存在这样的字符,则延伸到序列的末尾。如果start
等于end
,则不进行任何更改。- 参数:
-
start
- 起始索引(包括)。 -
end
- 结束索引(不包括)。 - 返回:
- 此对象。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果start
为负数,大于length()
,或大于end
。 - 自:
- 1.2
-
deleteCharAt
删除此序列中指定位置的char
。此序列的长度减少1
个char
。注意:如果给定索引处的字符是补充字符,则此方法不会删除整个字符。如果需要正确处理补充字符,请通过调用
Character.charCount(thisSequence.codePointAt(index))
确定要删除的char
数,其中thisSequence
是此序列。- 参数:
-
index
- 要删除的char
的索引 - 返回:
- 此对象。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果index
为负数或大于或等于length()
。 - 自:
- 1.2
-
replace
用指定String
中的字符替换此序列的子字符串中的字符。子字符串从指定的start
开始,延伸到索引end - 1
处的字符,或者如果不存在这样的字符,则延伸到序列的末尾。首先删除子字符串中的字符,然后在start
处插入指定的String
。(如果需要,此序列将延长以容纳指定的字符串。)- 参数:
-
start
- 起始索引(包括)。 -
end
- 结束索引(不包括)。 -
str
- 将替换先前内容的字符串。 - 返回:
- 此对象。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果start
为负数,大于length()
,或大于end
。 - 自:
- 1.2
-
substring
返回一个包含当前字符序列中当前包含的字符子序列的新String
。子字符串从指定索引开始,延伸到此序列的末尾。- 参数:
-
start
- 起始索引(包括)。 - 返回:
- 新字符串。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果start
小于零,或大于此对象的长度。 - 自:
- 1.2
-
subSequence
返回一个是此序列的子序列的新字符序列。形式为
的此方法的调用行为与调用sb.subSequence(begin, end)
完全相同。提供此方法是为了使此类能够实现sb.substring(begin, end)
CharSequence
接口。- 指定者:
-
subSequence
在接口CharSequence
- 参数:
-
start
- 起始索引(包括)。 -
end
- 结束索引(不包括)。 - 返回:
- 指定的子序列。
- 抛出:
-
IndexOutOfBoundsException
- 如果start
或end
为负数,如果end
大于length()
,或者如果start
大于end
- 自:
- 1.4
-
substring
返回一个包含当前字符序列中当前包含的字符子序列的新String
。子字符串从指定start
开始,延伸到索引end - 1
处的字符。- 参数:
-
start
- 起始索引(包括)。 -
end
- 结束索引(不包括)。 - 返回:
- 新字符串。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果start
或end
为负数或大于length()
,或者start
大于end
。 - 自:
- 1.2
-
insert
将str
数组参数的子数组的字符串表示插入到此序列中。子数组从指定的offset
开始,延伸len
个char
。子数组的字符插入到此序列中由index
指示的位置。此序列的长度增加len
个char
。- 参数:
-
index
- 要插入子数组的位置。 -
str
- 一个char
数组。 -
offset
- 要插入的子数组中第一个char
的索引。 -
len
- 要插入的子数组中的char
数。 - 返回:
- 此对象
- 抛出:
-
StringIndexOutOfBoundsException
- 如果index
为负数或大于length()
,或offset
或len
为负数,或(offset+len)
大于str.length
。 - 自:
- 1.2
-
insert
将Object
参数的字符串表示插入到此字符序列中。总体效果就好像第二个参数通过方法
String.valueOf(Object)
转换为字符串,然后该字符串的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
obj
- 一个Object
。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
将字符串插入到此字符序列中。按顺序将
String
参数的字符插入到此序列中指定的偏移量处,将原来位于该位置上方的任何字符向上移动,并将此序列的长度增加参数的长度。如果str
为null
,则将四个字符"null"
插入到此序列中。新字符序列中索引k处的字符等于:
- 如果k小于
offset
,则为旧字符序列中索引k处的字符 - 如果k不小于
offset
但小于offset+str.length()
,则为参数str
中索引k-offset
处的字符 - 如果k不小于
offset+str.length()
,则为旧字符序列中索引k-str.length()
处的字符
offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
str
- 一个字符串。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
- 如果k小于
-
insert
将char
数组参数的字符串表示插入到此序列中。数组参数的字符被插入到此序列的内容中,位置由
offset
指示。此序列的长度增加参数的长度。总体效果就好像第二个参数通过方法
String.valueOf(char[])
转换为字符串,然后该字符串的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
str
- 一个字符数组。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
将指定的CharSequence
插入到此序列中。按顺序将
CharSequence
参数的字符插入到此序列中指定的偏移量处,将原来位于该位置上方的任何字符向上移动,并将此序列的长度增加参数s的长度。此方法的结果与调用此对象的
insert
(dstOffset, s, 0, s.length())方法完全相同。如果
s
为null
,则将四个字符"null"
插入到此序列中。- 参数:
-
dstOffset
- 偏移量。 -
s
- 要插入的序列 - 返回:
- 对此对象的引用。
- 抛出:
-
IndexOutOfBoundsException
- 如果偏移量无效。 - 自:
- 1.5
-
insert
将指定CharSequence
的子序列插入到此序列中。由
s
参数指定的参数子序列由start
和end
指定,按顺序插入到此序列中指定的目标偏移量处,将原来位于该位置上方的任何字符向上移动。此序列的长度增加end - start
。此序列中索引k处的字符变为:
- 如果k小于
dstOffset
,则为此序列中索引k处的字符 - 如果k大于或等于
dstOffset
但小于dstOffset+end-start
,则为参数s
中索引k+start-dstOffset
处的字符 - 如果k大于或等于
dstOffset+end-start
,则为此序列中索引k-(end-start)
处的字符
dstOffset
参数必须大于或等于0
,并且小于或等于此序列的长度。start
参数必须为非负数,并且不大于end
。end
参数必须大于或等于start
,并且小于或等于s的长度。如果
s
为null
,则此方法插入字符,就好像s参数是包含四个字符"null"
的序列。- 参数:
-
dstOffset
- 此序列中的偏移量。 -
s
- 要插入的序列。 -
start
- 要插入子序列的起始索引。 -
end
- 要插入子序列的结束索引。 - 返回:
- 对此对象的引用。
- 抛出:
-
IndexOutOfBoundsException
- 如果dstOffset
为负数或大于this.length()
,或start
或end
为负数,或start
大于end
或end
大于s.length()
- 自:
- 1.5
- 如果k小于
-
insert
将boolean
参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(boolean)
转换为字符串,然后该字符串的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
b
- 一个boolean
。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
将char
参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(char)
转换为字符串,然后该字符串中的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
c
- 一个char
。 - 返回:
- 对此对象的引用。
- 抛出:
-
IndexOutOfBoundsException
- 如果偏移量无效。
-
insert
将第二个int
参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(int)
转换为字符串,然后该字符串的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
i
- 一个int
。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
将long
参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(long)
转换为字符串,然后该字符串的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
l
- 一个long
。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
插入float
参数的字符串表示形式到此序列中。整体效果就像第二个参数通过方法
String.valueOf(float)
转换为字符串,然后该字符串的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
f
- 一个float
。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
插入double
参数的字符串表示形式到此序列中。整体效果就像第二个参数通过方法
String.valueOf(double)
转换为字符串,然后该字符串的字符被插入到此字符序列中指定的偏移量处。offset
参数必须大于或等于0
,并且小于或等于此序列的长度。- 参数:
-
offset
- 偏移量。 -
d
- 一个double
。 - 返回:
- 对此对象的引用。
- 抛出:
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
indexOf
返回此字符串中指定子字符串的第一次出现的索引。返回的索引是最小值
k
,满足以下条件:
如果不存在这样的this.toString().startsWith(str, k)
k
值,则返回-1
。- 参数:
-
str
- 要搜索的子字符串。 - 返回:
-
指定子字符串的第一次出现的索引,如果没有这样的出现则返回
-1
。 - 自:
- 1.4
-
indexOf
返回此字符串中指定子字符串从指定索引开始的第一次出现的索引。返回的索引是最小值
k
,满足以下条件:
如果不存在这样的k >= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)
k
值,则返回-1
。- 参数:
-
str
- 要搜索的子字符串。 -
fromIndex
- 开始搜索的索引。 - 返回:
-
指定子字符串从指定索引开始的第一次出现的索引,如果没有这样的出现则返回
-1
。 - 自:
- 1.4
-
lastIndexOf
返回此字符串中指定子字符串的最后一次出现的索引。空字符串""的最后一次出现被认为发生在索引值this.length()
处。返回的索引是最大值
k
,满足以下条件:
如果不存在这样的this.toString().startsWith(str, k)
k
值,则返回-1
。- 参数:
-
str
- 要搜索的子字符串。 - 返回:
-
指定子字符串的最后一次出现的索引,如果没有这样的出现则返回
-1
。 - 自:
- 1.4
-
lastIndexOf
返回此字符串中指定子字符串的最后一次出现的索引,从指定索引开始向后搜索。返回的索引是最大值
k
,满足以下条件:
如果不存在这样的k <= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)
k
值,则返回-1
。- 参数:
-
str
- 要搜索的子字符串。 -
fromIndex
- 开始搜索的索引。 - 返回:
-
指定子字符串的最后一次出现的索引,从指定索引向后搜索,如果没有这样的出现则返回
-1
。 - 自:
- 1.4
-
reverse
使此字符序列被其反向序列替换。如果序列中包含任何代理对,则这些对对于反向操作被视为单个字符。因此,高低代理的顺序永远不会被颠倒。设n为执行reverse
方法之前此字符序列的字符长度(而不是char
值的长度)。然后,新字符序列中索引k处的字符等于旧字符序列中索引n-k-1处的字符。请注意,反向操作可能导致产生之前未配对的低代理和高代理的代理对。例如,反转"\uDC00\uD800"会产生"\uD800\uDC00",这是一个有效的代理对。
- 返回:
- 对此对象的引用。
- 自:
- 1.0.2
-
repeat
重复count
个codePoint
参数的字符串表示形式到此序列中。此序列的长度增加了
count
倍的字符串表示长度。通常使用
char
表达式表示代码点。例如:// 将10个星号插入缓冲区 sb.repeat('*', 10);
- 参数:
-
codePoint
- 要追加的代码点 -
count
- 要复制的次数 - 返回:
- 对此对象的引用。
- 抛出:
-
IllegalArgumentException
- 如果指定的codePoint
不是有效的Unicode代码点,或者count
为负数。 - 自:
- 21
-
repeat
将指定CharSequence
cs
的count
个副本附加到此序列。此序列的长度增加了
count
倍的CharSequence
长度。如果
cs
为null
,则将四个字符"null"
重复到此序列中。- 参数:
-
cs
- 一个CharSequence
-
count
- 要复制的次数 - 返回:
- 对此对象的引用。
- 抛出:
-
IllegalArgumentException
- 如果count
为负数 - 自:
- 21
-
toString
返回表示此序列中数据的字符串。分配并初始化一个新的String
对象,以包含当前由此对象表示的字符序列。然后返回此String
。随后对此序列的更改不会影响String
的内容。- 指定者:
-
toString
在接口CharSequence
- 返回:
- 此字符序列的字符串表示形式。
-
chars
返回从此序列中的char
值零扩展的int
值流。任何映射到代理代码点的字符将被无解释地传递。当终端流操作开始时(具体来说,对于可变序列,流的分割器是延迟绑定),流将绑定到此序列。如果在该操作期间修改了序列,则结果是未定义的。
- 指定者:
-
chars
在接口CharSequence
- 返回:
-
来自此序列的
char
值的IntStream - 自:
- 9
-
codePoints
返回从此序列中的代码点值的流。在序列中遇到的任何代理对都将被组合,就像通过Character.toCodePoint,然后将结果传递给流。任何其他代码单元,包括普通BMP字符、未配对的代理和未定义的代码单元,都将被零扩展为int
值,然后传递给流。当终端流操作开始时(具体来说,对于可变序列,流的分割器是延迟绑定),流将绑定到此序列。如果在该操作期间修改了序列,则结果是未定义的。
- 指定者:
-
codePoints
在接口CharSequence
- 返回:
- 来自此序列的Unicode代码点的IntStream
- 自:
- 9
-