public final class StringBuilder extends Object implements Serializable, CharSequence
StringBuffer
的API,但不保证同步。
此类设计用作简易替换为StringBuffer
在正在使用由单个线程字符串缓冲区的地方(如通常是这种情况)。
在可能的情况下,建议使用这个类别优先于StringBuffer
,因为它在大多数实现中将更快。
StringBuilder的主要StringBuilder
是append
和insert
方法,它们是重载的,以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。 append
方法始终在构建器的末尾添加这些字符; insert
方法将insert
添加到指定点。
例如,如果z
引用当前内容为“ start
”的字符串构建器对象,那么方法调用z.append("le")
将导致字符串构建器包含“ startle
”,而z.insert(4, "le")
会将字符串构建器更改为包含“ starlet
”。
一般情况下,如果某人是指的一个实例StringBuilder
,则sb.append(x)
具有相同的效果sb.insert(sb.length(), x)
。
每个字符串构建器都有一个容量。 只要字符串构建器中包含的字符序列的长度不超过容量,则不需要分配新的内部缓冲区。 如果内部缓冲区溢出,则会自动变大。
StringBuilder的StringBuilder
不能安全使用多线程。 如果需要同步, 那么建议使用StringBuffer
。
除非另有说明,否则将null
参数传递给null
中的构造函数或方法将导致抛出NullPointerException
。
StringBuffer
, String
, Serialized Form
Constructor and Description |
---|
StringBuilder()
构造一个没有字符的字符串构建器,初始容量为16个字符。
|
StringBuilder(CharSequence seq)
构造一个包含与指定的相同字符的字符串构建器
CharSequence 。
|
StringBuilder(int capacity)
构造一个没有字符的字符串构建器,由
capacity 参数指定的初始容量。
|
StringBuilder(String str)
构造一个初始化为指定字符串内容的字符串构建器。
|
Modifier and Type | Method and Description |
---|---|
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(CharSequence s)
将指定的字符序列追加到此
Appendable 。
|
StringBuilder |
append(CharSequence s, int start, int end)
追加指定的序列
CharSequence 的序列。
|
StringBuilder |
append(double d)
将
double 参数的字符串表示法附加到此序列。
|
StringBuilder |
append(float f)
将
float 参数的字符串表示附加到此序列。
|
StringBuilder |
append(int i)
将
int 参数的字符串表示法附加到此序列。
|
StringBuilder |
append(long lng)
将
long 参数的字符串表示法附加到此序列。
|
StringBuilder |
append(Object obj)
追加
Object 参数的字符串
Object 形式。
|
StringBuilder |
append(String str)
将指定的字符串附加到此字符序列。
|
StringBuilder |
append(StringBuffer sb)
将指定
StringBuffer 这个序列。
|
StringBuilder |
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代码点数。
|
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 dstOffset, CharSequence s)
将指定的
CharSequence 这个序列。
|
StringBuilder |
insert(int dstOffset, CharSequence s, int start, int end)
将指定的CharSequence的子
CharSequence 插入到此序列中。
|
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 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中的字符替换此序列的子字符串中的
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()
尝试减少用于字符序列的存储。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
charAt, chars, codePoints, length, subSequence
public StringBuilder()
public StringBuilder(int capacity)
capacity
参数指定的初始容量。
capacity
- 初始容量。
NegativeArraySizeException
- 如果
capacity
参数小于
0
。
public StringBuilder(String str)
16
加上字符串参数的长度。
str
- 缓冲区的初始内容。
public StringBuilder(CharSequence seq)
CharSequence
。
字符串构建器的初始容量为16
加上CharSequence
参数的长度。
seq
- 要复制的顺序。
public StringBuilder append(Object obj)
Object
参数的字符串表示。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(Object)
,而字符串的字符然后appended
到此字符序列。
obj
- 一个
Object
。
public StringBuilder append(String str)
附加String
参数的字符,以便String
参数的长度增加此序列的长度。 如果str
是null
,则附加四个字符"null"
。
令n是在执行append
方法之前的这个字符序列的长度。 那么如果k小于n ,则新字符序列中索引k处的字符等于旧字符序列中索引k处的字符; 否则,它等于参数str
中的索引kn处的str
。
str
- 一个字符串。
public StringBuilder append(StringBuffer sb)
StringBuffer
这个序列。
StringBuffer
参数的StringBuffer
按顺序附加到此序列中,将该序列的长度增加到参数的长度。 如果sb
是null
,那么四个字符"null"
附加到该序列。
在执行append
方法之前,让n为该字符序列的长度。 那么如果k小于n ,则新字符序列中索引k处的字符等于旧字符序列中索引k处的字符; 否则,它等于参数sb
中的索引kn处的sb
。
sb
- 附加的
StringBuffer
。
public StringBuilder append(CharSequence s)
Appendable
复制
根据哪个类实现字符序列csq ,整个序列可能不被附加。 例如,如果csq是CharBuffer
,则附加的子序列由缓冲区的位置和限制来定义。
append
在界面
Appendable
s
- 要追加的字符序列。
如果csq是null ,那么四个字符"null"附加到该附录。
public StringBuilder append(CharSequence s, int start, int end)
CharSequence
这个序列。
从索引start
开始的参数s
按顺序附加到该序列的内容,直到(独占)索引end
。 此序列的长度增加的值end - start
。
令n是在执行append
方法之前这个字符序列的长度。 那么如果k小于n ,则该字符序列中的索引k处的字符变得等于该序列中索引k处的字符; 否则,它等于参数s中索引k + start-n处的s
。
如果s
是null
,那么这个方法会附加字符,就像s参数是一个包含四个字符"null"
的序列"null"
。
append
在界面
Appendable
s
- 要追加的顺序。
start
- 要追加的子序列的起始索引。
end
- 要附加的子序列的结束索引。
IndexOutOfBoundsException
- 如果
start
为负数,或
start
大于
end
或
end
大于
s.length()
public StringBuilder append(char[] str)
char
数组参数的字符串表示附加到此序列。
数组参数的字符按顺序附加到此序列的内容。 该序列的长度增加参数的长度。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(char[])
,而字符串的字符然后appended
到此字符序列。
str
- 要附加的字符。
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
public StringBuilder append(boolean b)
boolean
参数的字符串表示法附加到序列中。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(boolean)
,而字符串的字符然后appended
到此字符序列。
b
- a
boolean
。
public StringBuilder append(char c)
char
参数的字符串表示附加到此序列。
该参数附加到此序列的内容。 该序列的长度增加1
。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(char)
,并在该字符串的字符然后appended
到此字符序列。
append
在界面
Appendable
c
- a
char
。
public StringBuilder append(int i)
int
参数的字符串表示法附加到此序列。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(int)
,而字符串的字符然后appended
到此字符序列。
i
- an
int
。
public StringBuilder append(long lng)
long
参数的字符串表示法附加到此序列。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(long)
,而字符串的字符然后appended
到此字符序列。
lng
- a
long
。
public StringBuilder append(float f)
float
参数的字符串表示法附加到此序列。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(float)
,而字符串的字符然后appended
到此字符序列。
f
- a
float
。
public StringBuilder append(double d)
double
参数的字符串表示法附加到此序列。
总的效果是完全一样如果参数是由该方法转换成一个字符串String.valueOf(double)
,而字符串的字符然后appended
到此字符序列。
d
- a
double
。
public StringBuilder appendCodePoint(int codePoint)
codePoint
参数的字符串表示法附加到此序列。
该参数附加到此序列的内容。 该序列的长度增加Character.charCount(codePoint)
。
总的效果是完全一样如果参数被转换为char
由该方法阵列Character.toChars(int)
和阵列中的字符然后appended
到此字符序列。
codePoint
- 一个Unicode代码点
public StringBuilder delete(int start, int end)
start
并延伸到字符索引end - 1
,或如果没有这样的字符存在的序列的结束。
如果start
等于end
,则不作任何更改。
start
- 开头索引(含)。
end
- 结束索引,独家。
StringIndexOutOfBoundsException
- 如果
start
为负,大于
length()
或大于
end
。
public StringBuilder deleteCharAt(int index)
char
在这个序列中的指定位置。
这个序列缩短了一个char
。
注意:如果给定索引处的字符是补充字符,则此方法不会删除整个字符。 如果需要的准确处理增补字符,确定数量char
通过调用删除Character.charCount(thisSequence.codePointAt(index))
,其中thisSequence
是此序列。
index
- 要删除的索引
char
StringIndexOutOfBoundsException
- 如果
index
为负数或大于或等于
length()
。
public StringBuilder replace(int start, int end, String str)
String
。
子串开始于指定start
并延伸到字符索引end - 1
,或如果没有这样的字符存在的序列的结束。
第一子串中的字符被去除,然后指定String
被插入在start
。
(如果需要,此序列将被延长以容纳指定的字符串。)
start
- 开始索引(含)。
end
- 结尾索引,独家。
str
- 将替换以前内容的字符串。
StringIndexOutOfBoundsException
- 如果
start
为负,大于
length()
或大于
end
。
public StringBuilder insert(int index, char[] str, int offset, int len)
str
数组参数的子阵列的字符串表示形式。
子阵列从指定的offset offset
,扩展为len
char
。
子阵列的字符在index
的位置被插入到该序列中。
该序列的长度增加len
char
s。
index
- 插入子阵列的位置。
str
- A
char
数组。
offset
- 要插入的子阵列中第一个
char
的索引。
len
- 要插入的子阵列中的数字
char
。
StringIndexOutOfBoundsException
- 如果
index
为负数或大于
length()
,或
offset
或
len
为负数,或
(offset+len)
大于
str.length
。
public StringBuilder insert(int offset, Object obj)
Object
参数的字符串表示插入到此字符序列中。
整体效果就好像第二个参数通过方法String.valueOf(Object)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,小于或等于此序列的length 。
offset
- 偏移。
obj
- 一个
Object
。
StringIndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int offset, String str)
String
参数的String
按顺序插入到指定偏移量的该序列中,向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数的长度。 如果str
是null
,则四个字符"null"
被插入到该序列中。
新字符序列中索引k处的字符等于:
offset
,则在旧字符序列中的索引k处的offset
-offset
的str
,如果k不小于offset
但小于offset+str.length()
-str.length()
处的字符,如果k不小于offset+str.length()
offset
参数必须大于或等于0
,小于或等于该序列的length 。
offset
- 偏移量。
str
- 一个字符串。
StringIndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int offset, char[] str)
char
数组参数的字符串表示形式。
数组参数的字符在offset
的位置插入到该序列的内容中。 该序列的长度增加参数的长度。
整体效果就好像第二个参数通过方法String.valueOf(char[])
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,并且小于或等于此序列的length 。
offset
- 偏移量。
str
- 一个字符数组。
StringIndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int dstOffset, CharSequence s)
CharSequence
插入到此序列中。
CharSequence
参数的CharSequence
按顺序插入到指定偏移量的该序列中,向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数s的长度。
该方法的结果与调用此对象的insert
(dstOffset,s,0,s.length())方法完全相同。
如果s
是null
,则四个字符"null"
被插入到这个序列中。
dstOffset
- 偏移。
s
- 要插入的序列
IndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
CharSequence
这个序列。
由start
和end
的参数s
的顺序按顺序插入到指定目的地偏移量的该序列中,向上移动原始位于该位置的任何字符。 该序列的长度增加了end - start
。
该序列中索引k处的字符等于:
dstOffset
,则该序列中索引k处的dstOffset
+start-dstOffset
处的s
,如果k大于或等于dstOffset
但小于dstOffset+end-start
-(end-start)
,如果k大于或等于dstOffset+end-start
dstOffset
参数必须大于或等于0
,小于或等于该序列的length 。
起始参数必须是非负数,不得大于end
。
结束参数必须大于或等于start
,小于或等于s的长度。
如果s
是null
,则该方法插入字符,就像s参数是包含四个字符"null"
的序列"null"
。
dstOffset
- 此序列中的偏移量。
s
- 要插入的序列。
start
- 插入
start
的起始索引。
end
- 要插入的子序列的结束索引。
IndexOutOfBoundsException
- 如果
dstOffset
为负数或大于
this.length()
,或
start
或
end
为负数,或
start
大于
end
或
end
大于
s.length()
public StringBuilder insert(int offset, boolean b)
boolean
参数的字符串表示形式。
总体效果就好像第二个参数通过方法String.valueOf(boolean)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,小于或等于该序列的length 。
offset
- 偏移。
b
- a
boolean
。
StringIndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int offset, char c)
char
参数的字符串表示形式。
总体效果就好像第二个参数通过方法String.valueOf(char)
转换为一个字符串,并且该字符串中的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,并且小于或等于此序列的length 。
offset
- 偏移量。
c
- a
char
。
IndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int offset, int i)
int
参数的字符串表示插入到此序列中。
整体效果就好像第二个参数通过方法String.valueOf(int)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,小于或等于该序列的length 。
offset
- 偏移。
i
- 一个
int
。
StringIndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int offset, long l)
long
参数的字符串表示插入到此序列中。
总体效果就好像通过方法String.valueOf(long)
将第二个参数转换为字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,小于或等于该序列的length 。
offset
- 偏移量。
l
- a
long
。
StringIndexOutOfBoundsException
- 如果偏移量无效。
public StringBuilder insert(int offset, float f)
float
参数的字符串表示形式。
整体效果就好像第二个参数通过方法String.valueOf(float)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,小于或等于此序列的length 。
offset
- 偏移。
f
- a
float
。
StringIndexOutOfBoundsException
- 如果偏移无效。
public StringBuilder insert(int offset, double d)
double
参数的字符串表示插入到此序列中。
总体效果就好像第二个参数通过方法String.valueOf(double)
转换为一个字符串,并且该字符串的字符然后是inserted
到指定的偏移量的这个字符序列。
offset
参数必须大于或等于0
,小于或等于该序列的length 。
offset
- 偏移。
d
- a
double
。
StringIndexOutOfBoundsException
- 如果偏移无效。
public int indexOf(String str)
this.toString().startsWith(str, <i>k</i>)
是true
。
str
- 任何字符串。
-1
。
public int indexOf(String str, int fromIndex)
k
,其中:
k >= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)
如果k的值不存在,则返回-1。
str
- 要搜索的子字符串。
fromIndex
- 从中开始搜索的索引。
public int lastIndexOf(String str)
this.length()
。
返回的索引是最大的值k
this.toString().startsWith(str, k)
是真的。
str
- 要搜索的子字符串。
-1
。
public int lastIndexOf(String str, int fromIndex)
k <= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)
如果k的值不存在,则返回-1。
str
- 要搜索的子字符串。
fromIndex
- 开始搜索的索引。
public StringBuilder reverse()
reverse
方法之前,让n为该字符序列的字符长度(不是char
值中的长度)。
那么新字符序列中的索引k处的字符等于旧字符序列中的索引nk-1处的字符。
请注意,相反的操作可能会导致在手术之前产生不配对的低代理和高代谢的替代对。 例如,反转“\ uDC00 \ uD800”会生成“\ uD800 \ uDC00”,它是一个有效的代理对。
public String toString()
String
对象被分配并初始化以包含此对象当前表示的字符序列。
然后返回String
。
此序列的后续更改不影响String
的内容。
toString
在界面
CharSequence
public int length()
length
在界面
CharSequence
public int capacity()
public void ensureCapacity(int minimumCapacity)
minimumCapacity
论证。 2
。 minimumCapacity
参数minimumCapacity
正态,则此方法不执行任何操作,只需返回。
请注意,此对象的后续操作可以将实际容量降低到低于此处所请求的容量。
minimumCapacity
- 最低所需容量。
public void trimToSize()
public void setLength(int newLength)
newLength
,在新的字符序列的索引k处的字符是相同的在旧序列索引k如果k小于原字符序列的长度的字符;
否则为空字符'\u0000'
。
换句话说,如果newLength
参数小于当前长度,则长度将更改为指定的长度。
如果newLength
参数大于或等于当前长度,则会附加足够的空字符( '\u0000'
),以使长度成为newLength
参数。
newLength
参数必须大于或等于0
。
newLength
- 新的长度
IndexOutOfBoundsException
- 如果
newLength
参数为负数。
public char charAt(int index)
char
在指定索引在这个序列值。
第一个char
值为索引0
,下一个索引为1
,依此类推,与数组索引一样。
index参数必须大于或等于0
,小于此序列的长度。
如果char
由索引指定的值是surrogate ,则返回所述替代值。
charAt
在界面
CharSequence
index
- 所需指数
char
值。
char
指定指数值。
IndexOutOfBoundsException
- 如果
index
为负数或大于或等于
length()
。
public int codePointAt(int index)
char
值(Unicode代码单位),范围从0
到length()
- 1
。
如果char
给定索引处指定的值处于高代理项范围,下列指数小于该序列的长度,和char
以下索引处的值是在低代理项范围,则补充代码点相应的这个代理对被退回。 否则返回给定索引处的char
值。
index
- 指数为
char
值
index
IndexOutOfBoundsException
- 如果
index
参数为负数或不小于此序列的长度。
public int codePointBefore(int index)
char
值(Unicode代码单位),范围从1
到length()
。
如果char
中(index - 1)
处于低代理范围内,则(index - 2)
不为负, char
为(index - 2)
为高代理范围,则返回替代对的补码代码值。 如果char
值为index - 1
是不配对的低代理或高替代值,则返回替代值。
index
- 应该返回的代码点之后的索引
IndexOutOfBoundsException
- 如果
index
参数小于1或大于此序列的长度。
public int codePointCount(int beginIndex, int endIndex)
beginIndex
并延伸到char
在索引endIndex - 1
。
因此,文本范围的长度( char
s)为endIndex-beginIndex
。
该序列中的未配对代理计数为每个代码点。
beginIndex
- 指向第一个
char
的文本范围。
endIndex
- 最后一个
char
之后的索引文字范围。
IndexOutOfBoundsException
- 如果
beginIndex
为负数,或
endIndex
大于此序列的长度,或
beginIndex
大于
endIndex
。
public int offsetByCodePoints(int index, int codePointOffset)
index
由codePointOffset
代码点偏移。
由index
和codePointOffset
给出的文本范围内的非配对替代品每个作为一个代码点。
index
- 要偏移的索引
codePointOffset
- 代码点的偏移量
IndexOutOfBoundsException
- 如果
index
为负或大于该序列的长度,或者如果
codePointOffset
为正,并且从index开始的
index
具有少于
codePointOffset
码点,或者如果
codePointOffset
为负,并且index之前的
index
少于绝对值
codePointOffset
代码点。
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
dst
。
要复制的第一个字符在索引srcBegin
;
要复制的最后一个字符是索引srcEnd-1
。
要复制的srcEnd-srcBegin
总数为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
public void setCharAt(int index, char ch)
ch
。
该序列被改变以表示一个新的字符序列,其是相同的原字符序列,不同之处在于它包含字符ch
在位置index
。
索引参数必须大于或等于0
,并且小于此序列的长度。
index
- 要修改的字符的索引。
ch
- 新角色。
IndexOutOfBoundsException
- 如果
index
为负数或大于或等于
length()
。
public String substring(int start)
String
,其中包含此字符序列中当前包含的字符的子序列。
子串从指定的索引开始,并延伸到该序列的末尾。
start
- 开始索引,包括。
StringIndexOutOfBoundsException
- 如果
start
小于零或大于该对象的长度。
public CharSequence subSequence(int start, int end)
调用此方法的形式
sb.subSequence(begin, end)
行为与调用完全相同
sb.substring(begin, end)
提供这种方法,使该类可以实现CharSequence
接口。
subSequence
在界面
CharSequence
start
- 开始索引(含)。
end
- 结束索引,排他。
IndexOutOfBoundsException
- 如果
start
或
end
为负数,如果
end
大于
length()
,或者如果
start
大于
end
public String substring(int start, int end)
String
,其中包含此序列中当前包含的字符的子序列。
子串开始于指定start
并延伸到字符索引end - 1
。
start
- 开头索引(含)。
end
- 结束索引,独家。
StringIndexOutOfBoundsException
- 如果
start
或
end
为负数或大于
length()
,或
start
大于
end
。