- java.lang.Object
-
- java.lang.StringBuilder
-
- All Implemented Interfaces:
-
Serializable
,Appendable
,CharSequence
public final class StringBuilder extends Object implements Serializable, CharSequence
一个可变的字符序列。 该类提供了一个与StringBuffer
兼容的API,但不能保证同步。 该类被设计为在字符串缓冲区被单个线程使用的地方(作为一般情况)用作StringBuffer
替代替代。 在可能的情况下,建议使用这个类别优先于StringBuffer
因为它在大多数实施中将更快。一个
StringBuilder
的主要操作是append
和insert
方法,它们是重载的,以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。append
方法总是在构建器的末尾添加这些字符;insert
方法将字符添加到指定点。例如,如果
z
引用当前内容为“start
”的字符串构建器对象,那么方法调用z.append("le")
将导致字符串构建器包含“startle
”,而z.insert(4, "le")
会将字符串构建器更改为包含“starlet
”。一般情况下,如果某人是指的一个实例
StringBuilder
,然后sb.append(x)
具有相同的效果sb.insert(sb.length(), x)
。每个字符串构建器都具有容量。 只要字符串构建器中包含的字符序列的长度不超过容量,则不需要分配新的内部缓冲区。 如果内部缓冲区溢出,则会自动变大。
StringBuilder
实例不能安全使用多线程。 如果需要同步,那么建议使用StringBuffer
。除非另有说明,否则将
null
参数传递给null
中的构造函数或方法将导致抛出NullPointerException
。- 从以下版本开始:
- 1.5
- 另请参见:
-
StringBuffer
,String
, Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 StringBuilder()
构造一个没有字符的字符串构建器,初始容量为16个字符。StringBuilder(int capacity)
构造一个没有字符的字符串构建器,以及由capacity
参数指定的初始容量。StringBuilder(CharSequence seq)
构造一个字符串构建器,其中包含与指定的CharSequence
相同的字符。StringBuilder(String str)
构造一个初始化为指定字符串内容的字符串构建器。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 StringBuilder
append(boolean b)
将boolean
参数的字符串表示附加到序列中。StringBuilder
append(char c)
将char
参数的字符串表示追加到此序列。StringBuilder
append(char[] str)
将char
数组参数的字符串表示追加到此序列。StringBuilder
append(char[] str, int offset, int len)
将char
数组参数的子阵列的字符串表示追加到此序列。StringBuilder
append(double d)
将double
参数的字符串表示法附加到此序列。StringBuilder
append(float f)
将float
参数的字符串表示法附加到此序列。StringBuilder
append(int i)
将int
参数的字符串表示法附加到此序列。StringBuilder
append(long lng)
将long
参数的字符串表示追加到此序列。StringBuilder
append(CharSequence s)
将指定的字符序列追加到此Appendable
。StringBuilder
append(CharSequence s, int start, int end)
追加指定的序列CharSequence
序列。StringBuilder
append(Object obj)
追加Object
参数的字符串表示形式。StringBuilder
append(String str)
将指定的字符串附加到此字符序列。StringBuilder
append(StringBuffer sb)
追加指定的StringBuffer
到这个序列。StringBuilder
appendCodePoint(int codePoint)
将codePoint
参数的字符串表示法附加到此序列。int
capacity()
返回当前容量。char
charAt(int index)
返回指定索引处的此序列中的char
值。IntStream
chars()
返回一个int
的数据流,从这个序列中扩展char
值。int
codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。int
codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。int
codePointCount(int beginIndex, int endIndex)
返回此序列指定文本范围内的Unicode代码点数。IntStream
codePoints()
从此序列返回码流值。StringBuilder
delete(int start, int end)
删除此序列的子字符串中的字符。StringBuilder
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)
返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。StringBuilder
insert(int offset, boolean b)
将boolean
参数的字符串表示插入到此序列中。StringBuilder
insert(int offset, char c)
将char
参数的字符串表示插入到此序列中。StringBuilder
insert(int offset, char[] str)
在此序列中插入char
数组参数的字符串表示形式。StringBuilder
insert(int index, char[] str, int offset, int len)
将str
数组参数的子阵列的字符串表示插入到此序列中。StringBuilder
insert(int offset, double d)
将double
参数的字符串表示插入到此序列中。StringBuilder
insert(int offset, float f)
将float
参数的字符串表示插入到此序列中。StringBuilder
insert(int offset, int i)
将第二个int
参数的字符串表示插入到此序列中。StringBuilder
insert(int offset, long l)
将long
参数的字符串表示插入到此序列中。StringBuilder
insert(int dstOffset, CharSequence s)
将指定的CharSequence
插入到此序列中。StringBuilder
insert(int dstOffset, CharSequence s, int start, int end)
在此序列中插入指定的CharSequence
序列。StringBuilder
insert(int offset, Object obj)
将Object
参数的字符串表示插入到此字符序列中。StringBuilder
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
代码点偏移的索引。StringBuilder
replace(int start, int end, String str)
用指定的String
的字符替换此序列的子字符串中的字符。StringBuilder
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()
尝试减少用于字符序列的存储。-
Methods inherited from interface java.lang.CharSequence
charAt, chars, codePoints, length, subSequence
-
-
-
-
构造方法详细信息
-
StringBuilder
public StringBuilder()
构造一个没有字符的字符串构建器,初始容量为16个字符。
-
StringBuilder
public StringBuilder(int capacity)
构造一个没有字符的字符串构建器,以及由capacity
参数指定的初始容量。- 参数
-
capacity
- 初始容量。 - 异常
-
NegativeArraySizeException
- 如果capacity
参数小于0
。
-
StringBuilder
public StringBuilder(String str)
构造一个初始化为指定字符串内容的字符串构建器。 字符串构建器的初始容量为16
加上字符串参数的长度。- 参数
-
str
- 缓冲区的初始内容。
-
StringBuilder
public StringBuilder(CharSequence seq)
构造一个字符串构建器,其中包含与指定的CharSequence
相同的字符。 字符串构建器的初始容量为16
加上CharSequence
参数的长度。- 参数
-
seq
- 要复制的顺序。
-
-
方法详细信息
-
append
public StringBuilder append(Object obj)
追加Object
参数的字符串表示形式。整体效果就好像通过方法
String.valueOf(Object)
将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended
。- 参数
-
obj
- 一个Object
。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(String str)
将指定的字符串附加到此字符序列。附加
String
参数的字符,以便String
参数的长度增加此序列的长度。 如果str
为null
,则附加四个字符"null"
。在执行
append
方法之前,让n为该字符序列的长度。 那么如果k小于n ,则新字符序列中索引k处的字符等于旧字符序列中索引k处的字符; 否则,它等于参数str
中的索引kn处的字符。- 参数
-
str
- 一个字符串。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(StringBuffer sb)
追加指定的StringBuffer
到这个序列。按照序列的顺序追加
StringBuffer
参数的字符,将该序列的长度增加到参数的长度。 如果sb
为null
,则该序列附加四个字符"null"
。在执行
append
方法之前,让n为该字符序列的长度。 那么如果k小于n ,则新字符序列中索引k处的字符等于旧字符序列中索引k处的字符; 否则,它等于参数sb
中的索引kn处的字符。- 参数
-
sb
- 附加的StringBuffer
。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(CharSequence s)
描述从接口Appendable
复制将指定的字符序列追加到此Appendable
。根据哪个类实现字符序列
csq
,整个序列可能不被附加。 例如,如果csq
是一个CharBuffer
,则附加的子序列由缓冲区的位置和限制来定义。- Specified by:
-
append
在接口Appendable
- 参数
-
s
- 要追加的字符序列。 如果csq
为null
,则该"null"
可附加四个字符"null"
。 - 结果
-
参考这个
Appendable
-
append
public StringBuilder 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"
的序列。- Specified by:
-
append
在接口Appendable
- 参数
-
s
- 要追加的序列。 -
start
- 要追加的子序列的起始索引。 -
end
- 要追加的子序列的结束索引。 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException
- 如果start
为负数,或start
大于end
或end
大于s.length()
-
append
public StringBuilder append(char[] str)
将char
数组参数的字符串表示追加到此序列。数组参数的字符按顺序附加到此序列的内容。 该序列的长度增加参数的长度。
整体效果就好像通过方法
String.valueOf(char[])
将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended
。- 参数
-
str
- 要附加的字符。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder 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 StringBuilder append(boolean b)
将boolean
参数的字符串表示追加到序列中。整体效果就好像通过方法
String.valueOf(boolean)
将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended
。- 参数
-
b
- aboolean
。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(char c)
将char
参数的字符串表示附加到此序列。该参数附加到此序列的内容。 该序列的长度增加
1
。整体效果就好像通过方法
String.valueOf(char)
将参数转换为字符串,该字符串中的字符然后是这个字符序列的appended
。- Specified by:
-
append
在接口Appendable
- 参数
-
c
- achar
。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(int i)
将int
参数的字符串表示追加到此序列。整体效果就好像通过方法
String.valueOf(int)
将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended
。- 参数
-
i
- 一个int
。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(long lng)
将long
参数的字符串表示附加到此序列。整体效果就好像通过方法
String.valueOf(long)
将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended
。- 参数
-
lng
- along
。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(float f)
将float
参数的字符串表示法附加到此序列。整体效果就好像通过方法
String.valueOf(float)
将参数转换为字符串,并且该字符串的字符然后是这个字符序列的appended
。- 参数
-
f
- afloat
。 - 结果
- 对这个对象的引用。
-
append
public StringBuilder append(double d)
将double
参数的字符串表示追加到此序列。整体效果就好像通过方法
String.valueOf(double)
将参数转换为字符串,并且该字符串的字符然后是该字符序列的appended
。- 参数
-
d
- adouble
。 - 结果
- 对这个对象的引用。
-
appendCodePoint
public StringBuilder appendCodePoint(int codePoint)
将codePoint
参数的字符串表示追加到此序列。该参数附加到此序列的内容。 该序列的长度增加
Character.charCount(codePoint)
。整体效果就好像通过方法
Character.toChars(int)
将参数转换为char
数组,并且该数组中的字符然后是该字符序列的appended
。- 参数
-
codePoint
- 一个Unicode代码点 - 结果
- 对这个对象的引用。
- 从以下版本开始:
- 1.5
-
delete
public StringBuilder delete(int start, int end)
删除此序列的子字符串中的字符。 子字符串从指定的start
开始,并扩展到索引号为end - 1
的字符,如果不存在这样的字符,则扩展到序列的末尾。 如果start
等于end
,则不作任何更改。- 参数
-
start
- 开始索引,包括。 -
end
- 结束索引,独家。 - 结果
- 这个对象。
- 异常
-
StringIndexOutOfBoundsException
- 如果start
为负数,大于length()
或大于end
。
-
deleteCharAt
public StringBuilder deleteCharAt(int index)
按照此顺序删除指定位置的char
。 该序列缩短了一个char
。注意:如果给定索引处的字符是补充字符,则此方法不会删除整个字符。 如果需要正确处理补充字符,请通过致电
Character.charCount(thisSequence.codePointAt(index))
确定char
的Character.charCount(thisSequence.codePointAt(index))
,其中thisSequence
为该序列。- 参数
-
index
- 索引char
删除 - 结果
- 这个对象。
- 异常
-
StringIndexOutOfBoundsException
- 如果index
为负数或大于或等于length()
。
-
replace
public StringBuilder replace(int start, int end, String str)
将此序列的子字符串中的字符替换为指定的String
字符。 子字符串从指定的start
开始,并扩展到索引号为end - 1
的字符,如果不存在这样的字符,则扩展到序列的末尾。 首先删除子字符串中的字符,然后在String
插入指定的start
。 (如果需要,此序列将被延长以容纳指定的字符串。)- 参数
-
start
- 开始索引,包括。 -
end
- 结束索引,独家。 -
str
- 将替换以前内容的字符串。 - 结果
- 这个对象。
- 异常
-
StringIndexOutOfBoundsException
- 如果start
为负,大于length()
,或大于end
。
-
insert
public StringBuilder insert(int index, char[] str, int offset, int len)
将str
数组参数的子阵列的字符串表示插入到此序列中。 子阵列从指定的offset
开始,扩展len
char
s。 子阵列的字符在index
所示的位置被插入到该序列中。 该序列的长度增加len
char
s。- 参数
-
index
- 插入子阵列的位置。 -
str
- Achar
数组。 -
offset
- 要插入的子阵列中的第一个char
的索引。 -
len
- 要插入的子阵列中的char
的数量。 - 结果
- 这个对象
- 异常
-
StringIndexOutOfBoundsException
- 如果index
为负数或大于length()
,或offset
或len
为负数,或(offset+len)
大于str.length
。
-
insert
public StringBuilder insert(int offset, Object obj)
将Object
参数的字符串表示插入到此字符序列中。整体效果就好像第二个参数通过方法
String.valueOf(Object)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。offset
参数必须大于或等于0
,小于或等于此序列的length 。- 参数
-
offset
- 偏移。 -
obj
- aObject
。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException
- 如果偏移无效。
-
insert
public StringBuilder insert(int offset, String str)
将字符串插入到此字符序列中。String
参数的字符按顺序插入到指定偏移量的该序列中,向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数的长度。 如果str
为null
,则四个字符"null"
被插入到该序列中。新字符序列中索引k处的字符等于:
- 如果k小于
offset
,则旧字符序列中的索引k处的字符 - 在索引k处的字符
-offset
在参数str
,如果k不小于offset
但小于offset+str.length()
- 在旧字符序列中的索引k
-str.length()
处的字符,如果k不小于offset+str.length()
offset
参数必须大于或等于0
,小于或等于此序列的length 。- 参数
-
offset
- 偏移。 -
str
- 一个字符串。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
- 如果k小于
-
insert
public StringBuilder insert(int offset, char[] str)
在此序列中插入char
数组参数的字符串表示形式。数组参数的字符在
offset
指示的位置插入到该序列的内容中。 该序列的长度增加参数的长度。总体效果就好像第二个参数通过方法
String.valueOf(char[])
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。offset
参数必须大于或等于0
,小于或等于此序列的length 。- 参数
-
offset
- 偏移量。 -
str
- 一个字符数组。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException
- 如果偏移无效。
-
insert
public StringBuilder insert(int dstOffset, CharSequence s)
在此序列中插入指定的CharSequence
。CharSequence
参数的字符按顺序插入到指定偏移量的该序列中,向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数s的长度。该方法的结果与调用该对象的
insert
(dstOffset,s,0,s.length())方法完全相同 。如果
s
为null
,则四个字符"null"
被插入到该序列中。- 参数
-
dstOffset
- 偏移量。 -
s
- 要插入的序列 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException
- 如果偏移无效。
-
insert
public StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
在该序列中插入指定的CharSequence
序列。参数的子序列
s
通过指定start
和end
被插入,以便成在指定的目的地偏移该序列中,该位置上述最初向上运动的任何字符。 该序列的长度增加end - start
。该序列中索引k处的字符等于:
- 如果k小于
dstOffset
,则该序列中索引k处的字符 - 参数
s
中索引k+start-dstOffset
处的字符,如果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()
- 如果k小于
-
insert
public StringBuilder insert(int offset, boolean b)
将boolean
参数的字符串表示插入到此序列中。整体效果就好像第二个参数通过方法
String.valueOf(boolean)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。offset
参数必须大于或等于0
,小于或等于此序列的length 。- 参数
-
offset
- 偏移。 -
b
- aboolean
。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
public StringBuilder insert(int offset, char c)
将char
参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(char)
转换为一个字符串,并且该字符串中的字符然后是inserted
到指定的偏移量的这个字符序列。offset
参数必须大于或等于0
,并小于或等于此序列的length 。- 参数
-
offset
- 偏移。 -
c
- achar
。 - 结果
- 对这个对象的引用。
- 异常
-
IndexOutOfBoundsException
- 如果偏移量无效。
-
insert
public StringBuilder insert(int offset, int i)
将第二个int
参数的字符串表示插入到此序列中。整体效果就好像通过方法
String.valueOf(int)
将第二个参数转换为字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。offset
参数必须大于或等于0
,小于或等于此序列的length 。- 参数
-
offset
- 偏移量。 -
i
- aint
。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException
- 如果偏移无效。
-
insert
public StringBuilder insert(int offset, long l)
在此序列中插入long
参数的字符串表示形式。总体效果就好像第二个参数通过方法
String.valueOf(long)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。offset
参数必须大于或等于0
,小于或等于此序列的length 。- 参数
-
offset
- 偏移量。 -
l
- along
。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException
- 如果偏移量无效。
-
insert
public StringBuilder insert(int offset, float f)
将float
参数的字符串表示插入到此序列中。总体效果就好像第二个参数通过方法
String.valueOf(float)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。offset
参数必须大于或等于0
,并且小于或等于此序列的length 。- 参数
-
offset
- 偏移。 -
f
- afloat
。 - 结果
- 对这个对象的引用。
- 异常
-
StringIndexOutOfBoundsException
- 如果偏移无效。
-
insert
public StringBuilder 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
。
-
indexOf
public int indexOf(String str, int fromIndex)
返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。返回的索引是最小值
k
,其中:k >= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)
k
值,则返回-1
。- 参数
-
str
- 要搜索的子字符串。 -
fromIndex
- 从中开始搜索的索引。 - 结果
-
指定的子字符串的第一次出现的索引,从指定的索引开始,如果没有这种情况,
-1
。
-
lastIndexOf
public int lastIndexOf(String str)
返回指定子字符串最后一次出现的字符串中的索引。 空字符串“”的最后一次出现被认为发生在索引值this.length()
。返回的指数是
k
,其中:this.toString().startsWith(str, k)
k
存在,那么-1
返回。- 参数
-
str
- 要搜索的子字符串。 - 结果
-
指定子字符串的最后一次出现的索引,如果没有这种情况,
-1
。
-
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
。
-
reverse
public StringBuilder reverse()
导致该字符序列被序列的相反代替。 如果序列中包含任何替代对,则将它们视为单个字符进行反向操作。 因此,高低替代品的顺序从未被扭转过。 在执行reverse
方法之前,让n为该字符序列的字符长度(不是char
的长度)。 那么新字符序列中的索引k处的字符等于旧字符序列中的索引nk-1处的字符。请注意,相反的操作可能会导致在手术之前产生不配对的低代谢和高代谢的替代对。 例如,反转“\ uDC00 \ uD800”会生成“\ uD800 \ uDC00”,它是一个有效的代理对。
- 结果
- 对这个对象的引用。
-
toString
public String toString()
返回表示此顺序中的数据的字符串。 新的String
对象被分配和初始化以包含此对象当前表示的字符序列。 然后返回String
。 对此序列的后续更改不影响String
的内容。- Specified by:
-
toString
在接口CharSequence
- 结果
- 这个字符序列的字符串表示。
-
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()
-
setLength
public void setLength(int newLength)
设置字符序列的长度。 该序列被更改为一个新的字符序列,其长度由参数指定。 对于小于每非负索引knewLength
,在新的字符序列的索引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
值为surrogate ,则返回替代值。- Specified by:
-
charAt
在接口CharSequence
- 参数
-
index
-index
的指数char
。 - 结果
-
指定的指数为
char
。 - 异常
-
IndexOutOfBoundsException
- 如果index
为负数或大于或等于length()
。
-
codePointAt
public int codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。 索引指的是char
值(Unicode代码单位),范围从0
到length()
- 1
。如果在给定索引处指定的
char
值处于高代理范围内,则以下索引小于该序列的长度,并且以下索引处的char
值处于低代理范围内,则补码代码点相应的这个代理对被退回。 否则,返回给定索引处的char
值。- 参数
-
index
- 索引为char
值 - 结果
-
字符的代码点值在
index
- 异常
-
IndexOutOfBoundsException
- 如果index
参数为负数或不小于此序列的长度。
-
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或大于此序列的长度。
-
codePointCount
public int codePointCount(int beginIndex, int endIndex)
返回此序列指定文本范围内的Unicode代码点数。 文本范围始于指定beginIndex
并延伸到char
在索引endIndex - 1
。 因此,文本范围的长度(char
秒)为endIndex-beginIndex
。 该序列中的未配对代理计数为每个代码点。- 参数
-
beginIndex
- 索引到第一个char
的文本范围。 -
endIndex
- 最后一个char
之后的索引文本范围。 - 结果
- 指定文本范围内的Unicode代码点数
- 异常
-
IndexOutOfBoundsException
- 如果beginIndex
为负数,或endIndex
大于此序列的长度,或beginIndex
大于endIndex
。
-
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset)
返回该序列中与index
由codePointOffset
代码点偏移的索引。 由index
和codePointOffset
给出的文本范围内的非配对替代品作为每个代码点。- 参数
-
index
- 要偏移的索引 -
codePointOffset
- 代码点的偏移量 - 结果
- 该序列中的索引
- 异常
-
IndexOutOfBoundsException
- 如果index
为负或大于该序列的长度,或者如果codePointOffset
为正,并且由index
开始的子index
具有少于codePointOffset
码点,或者如果codePointOffset
为负,并且index
之前的子index
小于绝对值codePointOffset
代码点。
-
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()
。
-
substring
public String substring(int start)
返回一个新的String
,其中包含此字符序列中当前包含的字符的子序列。 子串从指定的索引开始,并延伸到该序列的末尾。- 参数
-
start
- 开始索引,包括。 - 结果
- 新的字符串。
- 异常
-
StringIndexOutOfBoundsException
- 如果start
小于零或大于此对象的长度。
-
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
-
substring
public String substring(int start, int end)
返回一个新的String
,其中包含此序列中当前包含的字符的子序列。 子串从指定的start
开始,并扩展到索引号为end - 1
的字符。- 参数
-
start
- 开始索引,包括。 -
end
- 结束索引,独家。 - 结果
- 新的字符串。
- 异常
-
StringIndexOutOfBoundsException
- 如果start
或end
为负数或大于length()
,或start
大于end
。
-
chars
public IntStream chars()
返回一个int
的数据流,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
-
-