Java StringBuilder类
Java StringBuilder类用于创建可变(可修改)字符串。Java StringBuilder类与StringBuffer类相同,但它是不同步的。从JDK 1.5开始可用。
StringBuilder类的重要构造函数
建设者 | 描述 |
---|---|
StringBuilder() | 创建一个初始容量为16的空字符串Builder。 |
StringBuilder(字符串str) | 用指定的字符串创建一个字符串生成器。 |
StringBuilder(int长度) | 创建一个具有指定容量作为长度的空字符串Builder。 |
StringBuilder类的重要方法
方法 | 描述 |
---|---|
公共StringBuilder append(String s) | 用于在此字符串后附加指定的字符串。append()方法是重载的,如append(char),append(boolean),append(int),append(float),append(double)等。 |
公共StringBuilder insert(int offset,String s) | 用于将指定的字符串与此字符串插入指定位置。insert()方法是重载的,如insert(int,char),insert(int,boolean),insert(int,int),insert(int,float),insert(int,double)等。 |
公共StringBuilder replace(int startIndex,int endIndex,String str) | 用于替换指定的startIndex和endIndex中的字符串。 |
公开StringBuilder delete(int startIndex,int endIndex) | 用于从指定的startIndex和endIndex删除字符串。 |
公共StringBuilder reverse() | 用于反转字符串。 |
公共int容量() | 用于返回当前容量。 |
公共无效sureCapacity(int minimumCapacity) | 用于确保容量至少等于给定的最小值。 |
公共char charAt(int索引) | 用于返回指定位置的字符。 |
public int length() | 用于返回字符串的长度,即字符总数。 |
公共字符串子字符串(int beginIndex) | 用于从指定的beginIndex返回子字符串。 |
公共字符串子字符串(int beginIndex,int endIndex) | 用于从指定的beginIndex和endIndex返回子字符串。 |
Java StringBuilder示例
让我们看一下StringBuilder类的不同方法的示例。
1)StringBuilder append()方法
StringBuilder append()方法将给定参数与此字符串连接在一起。
class StringBuilderExample {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder("Hello ");
sb.append("Java");// now original string is changed
System.out.println(sb);// prints Hello Java
}
}
2)StringBuilder insert()方法
StringBuilder insert()方法将给定字符串与该字符串插入给定位置。
class StringBuilderExample2 {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder("Hello ");
sb.insert(1, "Java");// now original string is changed
System.out.println(sb);// prints HJavaello
}
}
3)StringBuilder replace()方法
StringBuilder replace()方法从指定的beginIndex和endIndex替换给定的字符串。
class StringBuilderExample3 {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder("Hello");
sb.replace(1, 3, "Java");
System.out.println(sb);// prints HJavalo
}
}
4)StringBuilder delete()方法
StringBuilder类的delete()方法将字符串从指定的beginIndex删除到endIndex。
class StringBuilderExample4 {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder("Hello");
sb.delete(1, 3);
System.out.println(sb);// prints Hlo
}
}
5)StringBuilder reverse()方法
StringBuilder类的reverse()方法反转当前字符串。
class StringBuilderExample5 {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder("Hello");
sb.reverse();
System.out.println(sb);// prints olleH
}
}
6)StringBuilder Capacity()方法
StringBuilder类的Capacity()方法返回Builder的当前容量。生成器的默认容量为16。如果字符数从其当前容量增加,它将增加(oldcapacity * 2)+2。例如,如果您当前的容量为16,则将为(16 * 2)+ 2 = 34。
class StringBuilderExample6 {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder();
System.out.println(sb.capacity());// default 16
sb.append("Hello");
System.out.println(sb.capacity());// now 16
sb.append("java is my favourite language");
System.out.println(sb.capacity());// now (16*2)+2=34 i.e (oldcapacity*2)+2
}
}
7)StringBuilder sureCapacity()方法
StringBuilder类的ensureCapacity()方法可确保给定容量为当前容量的最小值。如果大于当前容量,则将容量增加(oldcapacity * 2)+2。例如,如果您当前的容量为16,则将为(16 * 2)+ 2 = 34。
class StringBuilderExample7 {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder();
System.out.println(sb.capacity());// default 16
sb.append("Hello");
System.out.println(sb.capacity());// now 16
sb.append("java is my favourite language");
System.out.println(sb.capacity());// now (16*2)+2=34 i.e (oldcapacity*2)+2
sb.ensureCapacity(10);// now no change
System.out.println(sb.capacity());// now 34
sb.ensureCapacity(50);// now (34*2)+2
System.out.println(sb.capacity());// now 70
}
}