- java.lang.Object
-
- java.lang.StringBuilder
-
- 实现的所有接口
-
Serializable,Appendable,CharSequence,Comparable<StringBuilder>
public final class StringBuilder extends Object implements Serializable, Comparable<StringBuilder>, 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。- API Note:
-
StringBuilder实现Comparable但不覆盖equals。 因此,StringBuilder的自然顺序与equals不一致。 如果StringBuilder对象用作StringBuilder中的键或SortedMap元素,SortedSet。 见Comparable,SortedMap,或SortedSet获取更多信息。 - 从以下版本开始:
- 1.5
- 另请参见:
-
StringBuffer,String, Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 StringBuilder()构造一个字符串构建器,其中不包含任何字符,初始容量为16个字符。StringBuilder(int capacity)构造一个字符串构建器,其中没有字符,并且具有capacity参数指定的初始容量。StringBuilder(CharSequence seq)构造一个字符串构建器,其中包含与指定的CharSequence相同的字符。StringBuilder(String str)构造一个初始化为指定字符串内容的字符串构建器。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 StringBuilderappend(boolean b)将boolean参数的字符串表示形式追加到序列中。StringBuilderappend(char c)将char参数的字符串表示形式追加到此序列。StringBuilderappend(char[] str)将char数组参数的字符串表示形式追加到此序列。StringBuilderappend(char[] str, int offset, int len)将char数组参数的子数组的字符串表示形式追加到此序列。StringBuilderappend(double d)将double参数的字符串表示形式追加到此序列。StringBuilderappend(float f)将float参数的字符串表示形式追加到此序列。StringBuilderappend(int i)将int参数的字符串表示形式追加到此序列。StringBuilderappend(long lng)将long参数的字符串表示形式追加到此序列。StringBuilderappend(CharSequence s)将指定的字符序列追加到此Appendable。StringBuilderappend(CharSequence s, int start, int end)将指定的CharSequence序列追加到此序列。StringBuilderappend(Object obj)追加Object参数的字符串表示形式。StringBuilderappend(String str)将指定的字符串追加到此字符序列。StringBuilderappend(StringBuffer sb)将指定的StringBuffer追加到此序列。StringBuilderappendCodePoint(int codePoint)将codePoint参数的字符串表示形式追加到此序列。intcapacity()返回当前容量。charcharAt(int index)返回指定索引处的此序列中的char值。IntStreamchars()返回int的流,对此序列中的char值进行零扩展。intcodePointAt(int index)返回指定索引处的字符(Unicode代码点)。intcodePointBefore(int index)返回指定索引之前的字符(Unicode代码点)。intcodePointCount(int beginIndex, int endIndex)返回此序列的指定文本范围内的Unicode代码点数。IntStreamcodePoints()返回此序列中的代码点值流。intcompareTo(StringBuilder another)StringBuilder字典顺序比较两个StringBuilder实例。StringBuilderdelete(int start, int end)删除此序列的子字符串中的字符。StringBuilderdeleteCharAt(int index)按此顺序删除指定位置的char。voidensureCapacity(int minimumCapacity)确保容量至少等于指定的最小值。voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)将字符从此序列复制到目标字符数组dst。intindexOf(String str)返回指定子字符串第一次出现的字符串中的索引。intindexOf(String str, int fromIndex)从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。StringBuilderinsert(int offset, boolean b)将boolean参数的字符串表示形式插入此序列中。StringBuilderinsert(int offset, char c)将char参数的字符串表示形式插入此序列中。StringBuilderinsert(int offset, char[] str)将char数组参数的字符串表示形式插入此序列中。StringBuilderinsert(int index, char[] str, int offset, int len)将str数组参数的子数组的字符串表示形式插入此序列中。StringBuilderinsert(int offset, double d)将double参数的字符串表示形式插入此序列中。StringBuilderinsert(int offset, float f)将float参数的字符串表示形式插入此序列中。StringBuilderinsert(int offset, int i)将第二个int参数的字符串表示形式插入此序列中。StringBuilderinsert(int offset, long l)将long参数的字符串表示形式插入此序列中。StringBuilderinsert(int dstOffset, CharSequence s)将指定的CharSequence插入此序列。StringBuilderinsert(int dstOffset, CharSequence s, int start, int end)将指定的CharSequence序列插入此序列。StringBuilderinsert(int offset, Object obj)将Object参数的字符串表示形式插入此字符序列中。StringBuilderinsert(int offset, String str)将字符串插入此字符序列。intlastIndexOf(String str)返回指定子字符串最后一次出现的字符串中的索引。intlastIndexOf(String str, int fromIndex)返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。intlength()返回长度(字符数)。intoffsetByCodePoints(int index, int codePointOffset)返回此序列中的索引,该索引从给定的index偏移codePointOffset代码点。StringBuilderreplace(int start, int end, String str)使用指定的String的字符替换此序列的子字符串中的字符。StringBuilderreverse()导致此字符序列被序列的反向替换。voidsetCharAt(int index, char ch)指定索引处的字符设置为ch。voidsetLength(int newLength)设置字符序列的长度。CharSequencesubSequence(int start, int end)返回一个新的字符序列,它是该序列的子序列。Stringsubstring(int start)返回一个新的String,其中包含此字符序列中当前包含的字符的子序列。Stringsubstring(int start, int end)返回一个新的String,其中包含当前包含在此序列中的字符的子序列。voidtrimToSize()尝试减少用于字符序列的存储空间。-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
声明方法的接口 java.lang.CharSequence
charAt, chars, codePoints, length, subSequence, toString
-
-
-
-
构造方法详细信息
-
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- 要复制的序列。
-
-
方法详细信息
-
compareTo
public int compareTo(StringBuilder another)
StringBuilder字典顺序比较两个StringBuilder实例。 该方法遵循CharSequence.compare(this, another)方法中定义的词典比较的相同规则。有关细粒度,区域设置敏感的字符串比较,请参阅
Collator。- Specified by:
-
compareTo在接口Comparable<StringBuilder> - 参数
-
another- 要与之比较的StringBuilder - 结果
-
值
0如果此StringBuilder包含与参数StringBuilder相同的字符序列; 如果此StringBuilder字典顺序小于StringBuilder参数,StringBuilder负整数; 如果此StringBuilder字典顺序大于StringBuilder参数,StringBuilder正整数。 - 从以下版本开始:
- 11
-
append
public StringBuilder append(Object obj)
追加Object参数的字符串表示形式。整体效果与方法
String.valueOf(Object)将参数转换为字符串完全相同 ,然后该字符串的字符为appended。- 参数
-
obj-Object。 - 结果
- 对此对象的引用。
-
append
public StringBuilder append(String str)
将指定的字符串追加到此字符序列。按顺序附加
String参数的字符,按参数的长度增加此序列的长度。 如果str是null,则附加四个字符"null"。设n是执行
append方法之前的该字符序列的长度。 如果k小于n ,则新字符序列中索引k处的字符等于旧字符序列中索引k处的字符; 否则,它等于参数str中索引kn处的字符。- 参数
-
str- 一个字符串。 - 结果
- 对此对象的引用。
-
append
public StringBuilder append(StringBuffer sb)
将指定的StringBuffer追加到此序列。StringBuffer参数的字符按顺序附加到此序列,通过参数的长度增加此序列的长度。 如果sb是null,则将四个字符"null"附加到该序列。设n是执行
append方法之前的该字符序列的长度。 如果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"将附加到此Appendable。 - 结果
-
参考
Appendable
-
append
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"。- 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-boolean。 - 结果
- 对此对象的引用。
-
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-long。 - 结果
- 对此对象的引用。
-
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))确定要删除的chars的数量,其中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开始,并扩展lenchars。 子阵列的字符在index指示的位置处插入该序列中。 该序列的长度增加lenchars。- 参数
-
index- 插入子阵列的位置。 -
str-char阵列。 -
offset- 要插入的子阵列中的第一个char的索引。 -
len- 要插入的子阵列中的chars的数量。 - 结果
- 这个对象
- 异常
-
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-Object。 - 结果
- 对此对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移无效。
-
insert
public StringBuilder insert(int offset, String str)
将字符串插入此字符序列。String参数的字符按顺序插入到指定偏移量的此序列中,向上移动最初位于该位置上方的任何字符,并将该序列的长度增加参数的长度。 如果str是null,则将四个字符"null"插入到该序列中。新字符序列中索引k处的字符等于:
- 如果k小于
offset,则旧字符序列中索引k处的字符 - 参数
str中索引为k-offset的字符,如果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大于或等于
dstOffset+end-start,则此序列中索引为k-(end-start)的字符
dstOffset参数必须大于或等于0,并且小于或等于此序列的length 。start参数必须是非负的,且不大于
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-int。 - 结果
- 对此对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移无效。
-
insert
public StringBuilder insert(int offset, long l)
将long参数的字符串表示形式插入此序列中。总的效果是完全一样,如果第二个参数是由方法转换成一个字符串
String.valueOf(long),以及字符串的字符然后inserted成在所指示的偏移该字符序列。offset参数必须大于或等于0,并且小于或等于此序列的length 。- 参数
-
offset- 偏移量。 -
l-long。 - 结果
- 对此对象的引用。
- 异常
-
StringIndexOutOfBoundsException- 如果偏移无效。
-
insert
public StringBuilder insert(int offset, float f)
将float参数的字符串表示形式插入此序列中。整体效果与通过方法
String.valueOf(float)将第二个参数转换为字符串完全相同 ,并且该字符串的字符在指定的偏移处的字符序列中为inserted。offset参数必须大于或等于0,且小于或等于此序列的length 。- 参数
-
offset- 偏移量。 -
f-float。 - 结果
- 对此对象的引用。
- 异常
-
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()
导致此字符序列被序列的反向替换。 如果序列中包含任何代理对,则将这些代理对视为反向操作的单个字符。 因此,高低代理人的顺序永远不会逆转。 设n是执行reverse方法之前的该字符序列的字符长度(不是char值中的长度)。 然后,新字符序列中索引k处的字符等于旧字符序列中索引nk-1处的字符。请注意,反向操作可能导致产生代理对,这些代理对在操作之前是不成对的低代理和高代理。 例如,反转“\ uDC00 \ uD800”会生成“\ uD800 \ uDC00”,这是一个有效的代理项对。
- 结果
- 对此对象的引用。
-
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'),以使length成为newLength参数。newLength参数必须大于或等于0。- 参数
-
newLength- 新长度 - 异常
-
IndexOutOfBoundsException- 如果newLength参数为负数。
-
charAt
public char charAt(int index)
返回指定索引处的此序列中的char值。 第一个char值位于索引0,下一个位于索引1,依此类推,如数组索引中所示。index参数必须大于或等于
0,并且小于此序列的长度。如果索引指定的
char值为surrogate ,则返回代理值。- Specified by:
-
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参数为负数或不小于此序列的长度。
-
codePointBefore
public int codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。 索引引用char值(Unicode代码单位),范围从1到CharSequence.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。 因此,文本范围的长度(在chars中)是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的子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。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的流,对此序列中的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
-
-