- 所有已实现的接口:
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) 具有相同的效果。
每当发生涉及源序列的操作(例如从源序列追加或插入)时,此类仅在执行操作的字符串缓冲区上同步,而不是在源上同步。请注意,虽然 StringBuffer 被设计为可以安全地从多个线程并发使用,但如果向构造函数或 append 或 insert 操作传递跨线程共享的源序列,则调用代码必须确保操作具有一致且不变的视图操作期间的源序列。这可以通过调用者在操作调用期间持有锁、使用不可变源序列或不跨线程共享源序列来满足。
每个字符串缓冲区都有一个容量。只要字符串缓冲区中包含的字符序列长度不超过容量,就不需要分配新的内部缓冲区数组。如果内部缓冲区溢出,它会自动变大。
除非另有说明,否则将 null 参数传递给此类中的构造函数或方法将导致抛出 NullPointerException 。
从 JDK 5 开始,这个类已经补充了一个为单线程使用而设计的等效类,StringBuilder 。通常应优先使用 StringBuilder 类,因为它支持所有相同的操作,但速度更快,因为它不执行同步。
- API 注意:
StringBuffer实现Comparable但不覆盖equals。因此,StringBuffer的自然排序与 equals 不一致。如果将StringBuffer对象用作SortedMap中的键或SortedSet中的元素,则应小心。有关详细信息,请参阅Comparable、SortedMap或SortedSet。- 自从:
- 1.0
- 参见:
-
构造方法总结
构造方法构造方法描述构造一个其中没有字符且初始容量为 16 个字符的字符串缓冲区。StringBuffer(int capacity) 构造一个其中没有字符和指定初始容量的字符串缓冲区。StringBuffer(CharSequence seq) 构造一个字符串缓冲区,其中包含与指定的CharSequence相同的字符。StringBuffer(String str) 构造一个字符串缓冲区,初始化为指定字符串的内容。 -
方法总结
修饰符和类型方法描述append(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参数的字符串表示形式附加到此序列。intcapacity()返回当前容量。charcharAt(int index) 返回此序列中指定索引处的char值。chars()返回一个int流,对该序列的char值进行零扩展。intcodePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。intcodePointBefore(int index) 返回指定索引之前的字符(Unicode 代码点)。intcodePointCount(int beginIndex, int endIndex) 返回此序列的指定文本范围内的 Unicode 代码点数。返回此序列中的代码点值流。intcompareTo(StringBuffer another) 按字典顺序比较两个StringBuffer实例。delete(int start, int end) 删除此序列的子字符串中的字符。deleteCharAt(int index) 删除此序列中指定位置的char。voidensureCapacity(int minimumCapacity) 确保容量至少等于指定的最小值。voidgetChars(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参数的字符串表示形式插入此字符序列。将字符串插入此字符序列。intlastIndexOf(String str) 返回最后一次出现的指定子字符串在此字符串中的索引。intlastIndexOf(String str, int fromIndex) 返回最后一次出现的指定子字符串在此字符串中的索引,从指定索引开始向后搜索。intlength()返回长度(字符数)。intoffsetByCodePoints(int index, int codePointOffset) 返回此序列中的索引,该索引从给定的index偏移codePointOffset代码点。用指定的String中的字符替换此序列的子字符串中的字符。reverse()导致此字符序列被序列的反向替换。voidsetCharAt(int index, char ch) 指定索引处的字符设置为ch。voidsetLength(int newLength) 设置字符序列的长度。subSequence(int start, int end) 返回一个新的字符序列,它是此序列的子序列。substring(int start) 返回一个新的String,其中包含当前包含在此字符序列中的字符子序列。substring(int start, int end) 返回一个新的String,其中包含当前包含在此序列中的字符子序列。toString()返回表示此序列中数据的字符串。void尝试减少用于字符序列的存储。在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait在接口 java.lang.CharSequence 中声明的方法
chars, codePoints, isEmpty
-
构造方法详细信息
-
StringBuffer
public StringBuffer()构造一个其中没有字符且初始容量为 16 个字符的字符串缓冲区。 -
StringBuffer
public StringBuffer(int capacity) 构造一个其中没有字符和指定初始容量的字符串缓冲区。- 参数:
capacity- 初始容量。- 抛出:
NegativeArraySizeException- 如果capacity参数小于0。
-
StringBuffer
构造一个字符串缓冲区,初始化为指定字符串的内容。字符串缓冲区的初始容量是16加上字符串参数的长度。- 参数:
str- 缓冲区的初始内容。
-
StringBuffer
构造一个字符串缓冲区,其中包含与指定的CharSequence相同的字符。字符串缓冲区的初始容量是16加上CharSequence参数的长度。- 参数:
seq- 要复制的序列。- 自从:
- 1.5
-
-
方法详情
-
compareTo
按字典顺序比较两个StringBuffer实例。此方法遵循与 CharSequence.compare(this, another) 方法中定义的相同的词典比较规则。对于更细粒度、区域设置敏感的字符串比较,请参阅
Collator。- 指定者:
compareTo在接口Comparable<StringBuffer>中- 实现注意事项:
-
此方法在当前对象
this上同步,但不在与this StringBuffer进行比较的StringBuffer another上同步。 - 参数:
another- 要与之比较的StringBuffer- 返回:
-
值
0如果这个StringBuffer包含与参数StringBuffer相同的字符序列;如果此StringBuffer按字典顺序小于StringBuffer参数,则为负整数;或正整数,如果此StringBuffer按字典顺序大于StringBuffer参数。 - 自从:
- 11
-
length
public int length()返回长度(字符数)。- 指定者:
length在接口CharSequence中- 返回:
- 此对象当前表示的字符序列的长度
-
capacity
public int capacity()返回当前容量。容量是可以存储的字符数(包括已经写入的字符),超过该数量将发生分配。- 返回:
- 目前的容量
-
ensureCapacity
public void ensureCapacity(int minimumCapacity) 确保容量至少等于指定的最小值。如果当前容量小于参数,则分配一个容量更大的新内部数组。新容量是以下较大者:minimumCapacity参数。- 旧容量的两倍,加上
2。
minimumCapacity参数为非正数,则此方法不执行任何操作并简单地返回。请注意,对该对象的后续操作可能会将实际容量减少到此处请求的容量以下。- 参数:
minimumCapacity- 最小所需容量。
-
trimToSize
public void trimToSize()尝试减少用于字符序列的存储。如果缓冲区大于容纳其当前字符序列所需的大小,则可以调整其大小以提高空间效率。调用此方法可能(但不是必须)影响后续调用capacity()方法返回的值。- 自从:
- 1.5
-
setLength
public void setLength(int newLength) 设置字符序列的长度。该序列更改为一个新的字符序列,其长度由参数指定。对于每个非负索引k小于newLength,索引处的字符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
-
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
-
codePointCount
public int codePointCount(int beginIndex, int endIndex) 返回此序列的指定文本范围内的 Unicode 代码点数。文本范围从指定的beginIndex开始并扩展到索引endIndex - 1处的char。因此,文本范围的长度(以chars 为单位)为endIndex-beginIndex。此序列中未配对的代理每个都计为一个代码点。- 参数:
beginIndex- 文本范围第一个char的索引。endIndex- 文本范围最后一个char之后的索引。- 返回:
- 指定文本范围内的 Unicode 代码点数
- 抛出:
IndexOutOfBoundsException- 如果beginIndex为负,或者endIndex大于此序列的长度,或者beginIndex大于endIndex。- 自从:
- 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
-
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。此序列被更改为表示与旧字符序列相同的新字符序列,只是它在位置index处包含字符ch。索引参数必须大于或等于
0且小于此序列的长度。- 参数:
index- 要修改的字符的索引。ch- 新角色。- 抛出:
IndexOutOfBoundsException- 如果index为负或大于或等于length()。- 参见:
-
append
附加Object参数的字符串表示形式。整体效果就像参数通过方法
String.valueOf(Object)转换为字符串,然后该字符串的字符被appended转换为该字符序列。- 参数:
obj- 一个Object。- 返回:
- 对此对象的引用。
-
append
将指定的字符串附加到此字符序列。String参数的字符按顺序附加,按参数的长度增加此序列的长度。如果str是null,则附加四个字符"null"。让n是执行
append方法之前此字符序列的长度。然后索引处的字符k新字符序列中的字符等于索引处的字符k在旧字符序列中,如果k小于n;否则,它等于索引处的字符千克在参数str中。- 参数:
str- 一个字符串。- 返回:
- 对此对象的引用。
-
append
将指定的StringBuffer附加到此序列。StringBuffer参数的字符按顺序附加到此StringBuffer的内容,将此StringBuffer的长度增加参数的长度。如果sb是null,那么四个字符"null"将附加到这个StringBuffer。让n是旧字符序列的长度,即在执行
append方法之前包含在StringBuffer中的那个。然后索引处的字符k新字符序列中的字符等于索引处的字符k在旧字符序列中,如果k小于n;否则,它等于索引处的字符千克在参数sb中。此方法同步目标对象
this,但不同步源对象 (sb)。- 参数:
sb- 要追加的StringBuffer。- 返回:
- 对此对象的引用。
- 自从:
- 1.4
-
append
将指定的CharSequence附加到此序列。CharSequence参数的字符按顺序附加,按参数的长度增加此序列的长度。此方法的结果与调用 this.append(s, 0, s.length()); 完全相同。
此方法在目标对象
this上同步,但在源对象 (s) 上不同步。如果
s是null,则附加四个字符"null"。- 指定者:
append在接口Appendable中- 参数:
s- 要追加的CharSequence。- 返回:
- 对此对象的引用。
- 自从:
- 1.5
-
append
将指定的CharSequence的子序列附加到此序列。参数
s的字符,从索引start开始,按顺序附加到此序列的内容,直到(独占)索引end。该序列的长度增加了end - start的值。让n是执行
append方法之前此字符序列的长度。然后索引处的字符k此字符序列中的字符等于索引处的字符k在这个序列中,如果k小于n;否则,它等于索引处的字符k+开始-n在参数s中。如果
s是null,则此方法附加字符,就好像 s 参数是包含四个字符"null"的序列一样。- 指定者:
append在接口Appendable中- 参数:
s- 要追加的序列。start- 要附加的子序列的起始索引。end- 要附加的子序列的结束索引。- 返回:
- 对此对象的引用。
- 抛出:
IndexOutOfBoundsException- 如果start为负,或start大于end或end大于s.length()- 自从:
- 1.5
-
append
将char数组参数的字符串表示形式附加到此序列。数组参数的字符按顺序附加到此序列的内容。该序列的长度随着参数的长度而增加。
整体效果就像参数被方法
String.valueOf(char[])转换为字符串,然后该字符串的字符被appended转换为这个字符序列。- 参数:
str- 要追加的字符。- 返回:
- 对此对象的引用。
-
append
将char数组参数的子数组的字符串表示形式附加到此序列。char数组str的字符,从索引offset开始,按顺序附加到此序列的内容。该序列的长度增加了len的值。整体效果就像参数通过方法
String.valueOf(char[],int,int)转换为字符串,然后该字符串的字符被appended转换为该字符序列。- 参数:
str- 要追加的字符。offset- 要追加的第一个char的索引。len- 要附加的char的数量。- 返回:
- 对此对象的引用。
- 抛出:
IndexOutOfBoundsException- 如果offset < 0或len < 0或offset+len > str.length
-
append
将boolean参数的字符串表示形式附加到序列中。整体效果就像参数通过方法
String.valueOf(boolean)转换为字符串,然后该字符串的字符被appended转换为该字符序列。- 参数:
b- 一个boolean。- 返回:
- 对此对象的引用。
-
append
将char参数的字符串表示形式附加到此序列。参数附加到此序列的内容。该序列的长度增加
1。整体效果就像参数通过方法
String.valueOf(char)转换为字符串,然后该字符串中的字符被appended转换为该字符序列。- 指定者:
append在接口Appendable中- 参数:
c- 一个char。- 返回:
- 对此对象的引用。
-
append
将int参数的字符串表示形式附加到此序列。整体效果就像参数通过方法
String.valueOf(int)转换为字符串,然后该字符串的字符被appended转换为该字符序列。- 参数:
i- 一个int。- 返回:
- 对此对象的引用。
-
appendCodePoint
将codePoint参数的字符串表示形式附加到此序列。参数附加到此序列的内容。该序列的长度增加
Character.charCount(codePoint)。整体效果就像参数通过方法
Character.toChars(int)转换为char数组,然后该数组中的字符被appended转换为该字符序列。- 参数:
codePoint- 一个 Unicode 代码点- 返回:
- 对此对象的引用。
- 自从:
- 1.5
-
append
将long参数的字符串表示形式附加到此序列。整体效果就像参数被方法
String.valueOf(long)转换为字符串,然后该字符串的字符被appended转换为这个字符序列。- 参数:
lng- 一个long。- 返回:
- 对此对象的引用。
-
append
将float参数的字符串表示附加到此序列。整体效果就像参数通过方法
String.valueOf(float)转换为字符串,然后该字符串的字符被appended转换为该字符序列。- 参数:
f- 一个float。- 返回:
- 对此对象的引用。
-
append
将double参数的字符串表示形式附加到此序列。整体效果就像参数通过方法
String.valueOf(double)转换为字符串,然后该字符串的字符被appended转换为该字符序列。- 参数:
d- 一个double。- 返回:
- 对此对象的引用。
-
delete
删除此序列的子字符串中的字符。子字符串从指定的start开始并扩展到索引end - 1处的字符,如果不存在这样的字符,则扩展到序列的末尾。如果start等于end,则不进行任何更改。- 参数:
start- 开始索引,包括在内。end- 结束索引,独占。- 返回:
- 这个对象。
- 抛出:
StringIndexOutOfBoundsException- 如果start为负,大于length()或大于end。- 自从:
- 1.2
-
deleteCharAt
删除此序列中指定位置的char。这个序列被缩短了一个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开始并扩展lenchars。子数组的字符被插入到此序列中index指示的位置。该序列的长度增加lenchars。- 参数:
index- 插入子数组的位置。str- 一个char阵列。offset- 要插入的子数组中第一个char的索引。len- 要插入的子数组中char的数量。- 返回:
- 这个对象
- 抛出:
StringIndexOutOfBoundsException- 如果index为负数或大于length(),或者offset或len为负数,或者(offset+len)大于str.length。- 自从:
- 1.2
-
insert
将Object参数的字符串表示形式插入此字符序列。整体效果就好像第二个参数通过方法
String.valueOf(Object)转换为字符串,然后该字符串的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。obj- 一个Object。- 返回:
- 对此对象的引用。
- 抛出:
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
将字符串插入此字符序列。String参数的字符按顺序插入此序列中指定的偏移量,将原先位于该位置上方的任何字符向上移动,并将此序列的长度增加参数的长度。如果str是null,则将四个字符"null"插入到此序列中。索引处的字符k在新字符序列中等于:
- 索引处的字符k在旧字符序列中,如果k小于
offset - 索引处的字符k
-offset在参数str中,如果k不小于offset但小于offset+str.length() - 索引处的字符k
-str.length()在旧字符序列中,如果k不小于offset+str.length()
offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。str- 一个字符串。- 返回:
- 对此对象的引用。
- 抛出:
StringIndexOutOfBoundsException- 如果偏移量无效。
- 索引处的字符k在旧字符序列中,如果k小于
-
insert
将char数组参数的字符串表示形式插入到此序列中。数组参数的字符被插入到该序列内容中
offset指示的位置。该序列的长度随着参数的长度而增加。整体效果就好像第二个参数通过方法
String.valueOf(char[])转换为字符串,然后该字符串的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。str- 字符数组。- 返回:
- 对此对象的引用。
- 抛出:
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
将指定的CharSequence插入此序列。CharSequence参数的字符按顺序插入此序列中指定的偏移量,将原先位于该位置上方的任何字符向上移动,并将此序列的长度增加参数 s 的长度。此方法的结果与调用此对象的
insert(dstOffset, s, 0, s.length()) 方法的结果完全相同。如果
s是null,则将四个字符"null"插入到此序列中。- 参数:
dstOffset- 偏移量。s- 要插入的序列- 返回:
- 对此对象的引用。
- 抛出:
IndexOutOfBoundsException- 如果偏移量无效。- 自从:
- 1.5
-
insert
将指定CharSequence的子序列插入此序列。start和end指定的参数s的子序列按顺序插入此序列中指定的目标偏移量,向上移动最初位于该位置上方的任何字符。该序列的长度增加了end - start。索引处的字符k在这个序列中变得等于:
- 索引处的字符k在这个序列中,如果k小于
dstOffset - 索引处的字符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"的序列一样。- 参数:
dstOffset- 此序列中的偏移量。s- 要插入的序列。start- 要插入的子序列的起始索引。end- 要插入的子序列的结束索引。- 返回:
- 对此对象的引用。
- 抛出:
IndexOutOfBoundsException- 如果dstOffset为负或大于this.length(),或者start或end为负,或者start大于end或end大于s.length()- 自从:
- 1.5
- 索引处的字符k在这个序列中,如果k小于
-
insert
将boolean参数的字符串表示形式插入此序列。总体效果就好像第二个参数通过方法
String.valueOf(boolean)转换为字符串,然后该字符串的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。b- 一个boolean。- 返回:
- 对此对象的引用。
- 抛出:
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
将char参数的字符串表示形式插入此序列。整体效果就好像第二个参数通过方法
String.valueOf(char)转换为字符串,然后该字符串中的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。c- 一个char。- 返回:
- 对此对象的引用。
- 抛出:
IndexOutOfBoundsException- 如果偏移量无效。
-
insert
将第二个int参数的字符串表示形式插入此序列。总体效果就好像第二个参数通过方法
String.valueOf(int)转换为字符串,然后该字符串的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。i- 一个int。- 返回:
- 对此对象的引用。
- 抛出:
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
将long参数的字符串表示形式插入此序列。总体效果就好像第二个参数通过方法
String.valueOf(long)转换为字符串,然后该字符串的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。l- 一个long。- 返回:
- 对此对象的引用。
- 抛出:
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
将float参数的字符串表示形式插入此序列。总体效果就好像第二个参数通过方法
String.valueOf(float)转换为字符串,然后该字符串的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
offset- 偏移量。f- 一个float。- 返回:
- 对此对象的引用。
- 抛出:
StringIndexOutOfBoundsException- 如果偏移量无效。
-
insert
将double参数的字符串表示形式插入此序列。整体效果就好像第二个参数通过方法
String.valueOf(double)转换为字符串,然后该字符串的字符在指示的偏移处inserted进入此字符序列。offset参数必须大于或等于0且小于或等于此序列的 length。- 参数:
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新字符序列中的字符等于索引处的字符nk-1在旧字符序列中。请注意,反向操作可能会导致生成代理对,这些代理对在操作前是未配对的低代理和高代理。例如,反转“\uDC00\uD800”会生成“\uD800\uDC00”,这是一个有效的代理项对。
- 返回:
- 对此对象的引用。
- 自从:
- 1.0.2
-
toString
返回表示此序列中数据的字符串。分配并初始化一个新的String对象以包含该对象当前表示的字符序列。然后返回此String。对该序列的后续更改不会影响String的内容。- 指定者:
toString在接口CharSequence中- 返回:
- 此字符序列的字符串表示形式。
-
chars
返回一个int流,对该序列的char值进行零扩展。映射到 代理码点 的任何字符都将不经解释地通过。当终端流操作开始时,流绑定到这个序列(具体来说,对于可变序列,流的拆分器是 late-binding )。如果在该操作期间修改了序列,则结果未定义。
- 指定者:
chars在接口CharSequence中- 返回:
- 来自此序列的 char 值的 IntStream
- 自从:
- 9
-
codePoints
返回此序列中的代码点值流。序列中遇到的任何代理对都被组合为 Character.toCodePoint 并将结果传递给流。任何其他代码单元,包括普通 BMP 字符、未配对的代理项和未定义的代码单元,都被零扩展为int值,然后传递给流。当终端流操作开始时,流绑定到这个序列(具体来说,对于可变序列,流的拆分器是 late-binding )。如果在该操作期间修改了序列,则结果未定义。
- 指定者:
codePoints在接口CharSequence中- 返回:
- 来自此序列的 Unicode 代码点的 IntStream
- 自从:
- 9
-