📅  最后修改于: 2020-03-25 02:43:46             🧑  作者: Mango
Java中的StringBuilder表示可变的字符序列。由于Java中的String类创建了不可变的字符序列,因此StringBuilder类提供了String Class的替代方法,因为它创建了可变的字符序列。StringBuilder的功能与StringBuffer类非常相似,因为它们都通过创建可变的字符序列来提供String类的替代方法。然而StringBuilder类不同于所述的StringBuffer类。StringBuilder类不提供同步保证,而StringBuffer类提供线程安全的同步保证。因此,此类设计为在单个线程正在使用StringBuffer的位置(通常是这种情况)用作StringBuffer的直接替代。在可能的情况下,建议优先使用StringBuilder类而不是StringBuffer,因为在大多数实现中它会更快。StringBuilder实例不能安全地用于多个线程。如果需要这样的同步,则建议使用StringBuffer。
类层次结构:
java.lang.Object
↳ java.lang
↳ Class StringBuilder
语法:
public final class StringBuilder
extends Object
implements Serializable, CharSequence
Java StringBuilder中的构造函数:
下面是一个示例程序,用于说明Java中的StringBuilder:
// Java展示如何使用StringBuilder
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
// 创建StringBuilder对象
StringBuilder str
= new StringBuilder();
str.append("GFG");
// 打印string
System.out.println("String = "
+ str.toString());
// 创建StringBuilder对象
// 使用StringBuilder(CharSequence)构造器
StringBuilder str1
= new StringBuilder("AAAABBBCCCC");
// 打印string
System.out.println("String1 = "
+ str1.toString());
// 创建StringBuilder对象
// 使用StringBuilder(capacity)构造函数
StringBuilder str2
= new StringBuilder(10);
// 打印string
System.out.println("String2 capacity = "
+ str2.capacity());
// 创建StringBuilder对象
// 使用StringBuilder(String)构造器
StringBuilder str3
= new StringBuilder(str1);
// 打印string
System.out.println("String3 = "
+ str3.toString());
}
}
输出:
String = GFG
String1 = AAAABBBCCCC
String2 capacity = 10
String3 = AAAABBBCCCC
Java StringBuilder中的方法:
例:
// Java展示StringBuilder当中的方法
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
// 创建一个StringBuilder对象
StringBuilder str
= new StringBuilder("AAAABBBCCCC");
// 打印string
System.out.println("String = "
+ str.toString());
// 反转string
StringBuilder reverseStr = str.reverse();
// 打印string
System.out.println("反转的string = "
+ reverseStr.toString());
// 对string,append', '(44)
str.appendCodePoint(44);
// 打印调整后的StringBuilder
System.out.println("调整后的StringBuilder = "
+ str);
// 获取容量
int capacity = str.capacity();
// 打印结果
System.out.println("StringBuilder = " + str);
System.out.println("StringBuilder容量 = "
+ capacity);
}
}
输出:
String = AAAABBBCCCC
反转的string = CCCCBBBAAAA
调整后的StringBuilder = CCCCBBBAAAA,
StringBuilder = CCCCBBBAAAA,
StringBuilder容量 = 27