Java中的StringBuilder表示可变的字符序列。由于Java中的String类会创建不可变的字符序列,因此StringBuilder类提供了String类的替代方法。
StringBuilder的功能与StringBuffer类非常相似,因为它们都通过可变的字符序列提供了String类的替代方法。但是,StringBuilder类在同步机制上与StringBuffer类不同。 StringBuilder类不提供同步保证,而StringBuffer类提供同步保证。因此,此类是为在单个线程使用StringBuffer时(通常是这种情况)用作StringBuffer的直接替代品。在可能的情况下,建议优先使用StringBuilder,因为在大多数实现中它会更快。 StringBuilder实例不能安全地用于多个线程。如果需要同步机制,则建议使用StringBuffer。
StringBuilder中的构造函数:
StringBuilder(): 构造一个不包含任何字符且初始容量为16个字符的字符串生成器。
StringBuilder(int capacity): 构造一个字符串生成器,其中不包含任何字符,并且初始容量由Capacity参数指定。
StringBuilder(CharSequence seq): 构造一个字符串生成器,其中包含与指定CharSequence相同的字符。
StringBuilder(String str):构造一个字符串生成器,初始化为指定字符串的内容。
代码示例:
public class setep {
public static void main(String[] argv)
throws Exception{
StringBuilder str = new StringBuilder();
str.append("GFG");
System.out.println("String = "+ str.toString());
StringBuilder str1 = new StringBuilder("AAAABBBCCCC");
System.out.println("String1 = "+ str1.toString());
StringBuilder str2 = new StringBuilder(10);
System.out.println("String2 capacity = "+ str2.capacity());
StringBuilder str3 = new StringBuilder(str1);
System.out.println("String3 = "+ str3.toString());
}
}
输出:
String = GFG
String1 = AAAABBBCCCC
String2 capacity = 10
String3 = AAAABBBCCCC
StringBuilder中的一些方法
StringBuilder append(X x):此方法将X类型参数的字符串表示形式附加到序列中。
int capacity():此方法返回当前容量。
char charAt(int index):此方法返回此序列在指定索引处的char值。
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():此方法返回指定子字符串首次出现在该字符串中的索引。
StringBuilder insert():此方法将char参数的字符串表示形式插入此序列中。
int lastIndexOf():此方法返回指定子字符最后一次出现在此字符串内的索引。
int length():此方法返回长度(字符数)。
StringBuilder replace(int start, int end,String str):此方法用指定String中的字符替换此序列的子字符串中的字符。
StringBuilder reverse():此方法会使此字符序列被序列的相反字符替换。
void setCharAt(int index, char ch):在此方法中,指定索引处的字符设置为ch。
void setLength(int newLength):此方法设置字符序列的长度。
CharSequence subSequence(int start, int end):此方法返回一个新的字符序列,即该序列的子序列。
String substring():此方法返回一个新的String,包含此字符序列中当前包含字符的子序列。
String toString():此方法返回一个序列中数据的string形式。
代码示例:
public class setep {
public static void main(String[] argv)
throws Exception {
StringBuilder str =new StringBuilder("AAAABBBCCCC");
System.out.println("String = "+ str.toString());
StringBuilder reverseStr = str.reverse();
System.out.println("Reverse String = "+ reverseStr.toString());
str.appendCodePoint(44);
System.out.println("Modified StringBuilder = "+ str);
int capacity = str.capacity();
System.out.println("StringBuilder = " + str);
System.out.println("Capacity of StringBuilder = "+ capacity);
}
}
输出:
String = AAAABBBCCCC
Reverse String = CCCCBBBAAAA
Modified StringBuilder = CCCCBBBAAAA,
StringBuilder = CCCCBBBAAAA,
Capacity of StringBuilder = 27