Java中的StringBuilder类用法及其示例

的StringBuilderJava中的代表可变字符序列。自从弦类在Java中创建不可变的字符序列时, StringBuilder类为弦类, 因为它会创建可变的字符序列。 StringBuilder的功能与字符串缓冲区类, 因为它们都为弦类通过使字符序列可变。但是, StringBuilder类与字符串缓冲区类基于同步。 StringBuilder类不能保证同步, 而字符串缓冲区类。因此, 该类旨在用作的替代品。字符串缓冲区在单个线程正在使用StringBuffer的地方(通常是这种情况)。建议在可能的情况下优先使用此类字符串缓冲区因为在大多数实现中它会更快。 StringBuilder实例不能安全地用于多个线程。如果需要这样的同步, 那么建议字符串缓冲区使用。
类层次结构:

java.lang.Object ? java.lang? Class StringBuilder

语法如下:
public final class StringBuilderextends Objectimplements Serializable, CharSequence

Java StringBuilder中的构造函数:
  • StringBuilder():构造一个不包含任何字符且初始容量为16个字符的字符串生成器。
  • StringBuilder(int容量):构造一个字符串构建器, 其中不包含任何字符, 并且初始容量由Capacity参数指定。
  • StringBuilder(CharSequence seq):构造一个字符串生成器, 其中包含与指定CharSequence相同的字符。
  • StringBuilder(String str):构造一个字符串构建器, 初始化为指定字符串的内容。
下面是一个示例程序, 用于说明Java中的StringBuilder:
// Java code to illustrate StringBuilderimport java.util.*; import java.util.concurrent.LinkedBlockingQueue; public class GFG1 { public static void main(String[] argv) throws Exception {// create a StringBuilder object // usind StringBuilder() constructor StringBuilder str = new StringBuilder(); str.append( "GFG" ); // print string System.out.println( "String = " + str.toString()); // create a StringBuilder object // usind StringBuilder(CharSequence) constructor StringBuilder str1 = new StringBuilder( "AAAABBBCCCC" ); // print string System.out.println( "String1 = " + str1.toString()); // create a StringBuilder object // usind StringBuilder(capacity) constructor StringBuilder str2 = new StringBuilder( 10 ); // print string System.out.println( "String2 capacity = " + str2.capacity()); // create a StringBuilder object // usind StringBuilder(String) constructor StringBuilder str3 = new StringBuilder(str1); // print string System.out.println( "String3 = " + str3.toString()); } }

【Java中的StringBuilder类用法及其示例】输出如下:
String = GFGString1 = AAAABBBCCCCString2 capacity = 10String3 = AAAABBBCCCC

Java StringBuilder中的方法:
  1. StringBuilder追加(X x):此方法将X类型参数的字符串表示形式附加到序列中。
  2. StringBuilder appendCodePoint(int codePoint):此方法将codePoint参数的字符串表示形式附加到此序列。
  3. 整数容量():此方法返回当前容量。
  4. char charAt(int index):此方法在指定的索引处按此顺序返回char值。
  5. IntStream chars():此方法返回此序列的int零扩展char值的流。
  6. int codePointAt(int索引):此方法返回指定索引处的字符(Unicode代码点)。
  7. int codePointBefore(int索引):此方法返回指定索引之前的字符(Unicode代码点)。
  8. int codePointCount(int beginIndex, int endIndex):此方法返回此序列的指定文本范围内的Unicode代码点数。
  9. IntStream codePoints():此方法从此序列返回代码点值流。
  10. StringBuilder delete(int开始, int结束):此方法删除此序列的子字符串中的字符。
  11. StringBuilder deleteCharAt(int索引):此方法按此顺序删除指定位置的char。
  12. void sureCapacity(int minimumCapacity):此方法可确保容量至少等于指定的最小值。
  13. void getChars(int srcBegin, int srcEnd, char [] dst, int dstBegin):此方法字符从此序列复制到目标字符数组dst。
  14. int indexOf():此方法返回指定子字符串首次出现在该字符串内的索引。
  15. StringBuilder insert(int offset, boolean b):此方法将booalternatelean参数的字符串表示形式插入此序列中。
  16. StringBuilder insert():此方法将char参数的字符串表示形式插入此序列。
  17. int lastIndexOf():此方法返回最后一次出现的指定子字符串在此字符串内的索引。
  18. int length():此方法返回长度(字符数)。
  19. int offsetByCodePoints(int index, int codePointOffset):此方法返回此序列内的索引, 该索引与codeIndexOffset代码点的给定索引偏移。
  20. StringBuilder replace(int开头, int结束, String str):此方法用指定String中的字符替换此序列的子字符串中的字符。
  21. StringBuilder reverse():此方法导致此字符序列被序列的相反字符替换。
  22. void setCharAt(int index, char ch):在此方法中, 指定索引处的字符设置为ch。
  23. 无效setLength(int newLength):此方法设置字符序列的长度。
  24. CharSequence subSequence(整数开始, 整数结束):此方法返回一个新的字符序列, 该序列是该序列的子序列。
  25. 字符串substring():此方法返回一个新的String, 该字符串包含此字符序列中当前包含的字符的子序列。
  26. 字符串toString():此方法返回一个表示此序列中数据的字符串。
  27. void trimToSize():此方法尝试减少用于字符序列的存储。
例子:
// Java code to illustrate // methods of StringBuilderimport java.util.*; import java.util.concurrent.LinkedBlockingQueue; public class GFG1 { public static void main(String[] argv) throws Exception {// create a StringBuilder object // with a String pass as parameter StringBuilder str = new StringBuilder( "AAAABBBCCCC" ); // print string System.out.println( "String = " + str.toString()); // reverse the string StringBuilder reverseStr = str.reverse(); // print string System.out.println( "Reverse String = " + reverseStr.toString()); // Append ', '(44) to the String str.appendCodePoint( 44 ); // Print the modified String System.out.println( "Modified StringBuilder = " + str); // get capacity int capacity = str.capacity(); // print the result System.out.println( "StringBuilder = " + str); System.out.println( "Capacity of StringBuilder = " + capacity); } }

输出如下:
String = AAAABBBCCCCReverse String = CCCCBBBAAAAModified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27

参考:https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html

    推荐阅读