Java教程-Java StringBuilder 类

Java StringBuilder 类用于创建可变(可修改)字符串。Java StringBuilder 类与 StringBuffer 类相同,只是它是非同步的。它从 JDK 1.5 开始可用。
StringBuilder 类的重要构造函数
构造器 | 描述 |
---|---|
StringBuilder() | 它创建一个空的 String Builder,初始容量为 16。 |
StringBuilder(String str) | 它使用指定的字符串创建一个 String Builder。 |
StringBuilder(int length) | 它创建一个空的 String Builder,其长度为指定的容量。 |
StringBuilder类的重要方法
方法 | 描述 |
---|---|
public StringBuilder append(String s) | 它用于将指定的字符串附加到此字符串。append() 方法被重载,如 append(char)、append(boolean)、append(int)、append(float)、append(double) 等。 |
public StringBuilder insert(int offset, String s) | 用于在指定位置插入带有此字符串的指定字符串。insert() 方法重载,如 insert(int, char)、insert(int, boolean)、insert(int, int)、insert(int, float)、insert(int, double) 等。 |
public StringBuilder replace(int startIndex, int endIndex, String str) | 它用于替换指定 startIndex 和 endIndex 的字符串。 |
public StringBuilder delete(int startIndex, int endIndex) | 用于从指定的startIndex 和endIndex 中删除字符串。 |
public StringBuilder reverse() | 它用于反转字符串。 |
public int capacity() | 它用于返回当前容量。 |
public void ensureCapacity(int minimumCapacity) | 它用于确保容量至少等于给定的最小值。 |
public char charAt(int index) | 用于返回指定位置的字符。 |
public int length() | 它用于返回字符串的长度,即字符总数。 |
public String substring(int beginIndex) | 它用于从指定的 beginIndex 返回子字符串。 |
public String substring(int beginIndex, int endIndex) | 它用于从指定的 beginIndex 和 endIndex 返回子字符串。 |
Java StringBuilder 示例
让我们看看 StringBuilder 类的不同方法的例子。
1)StringBuilder的append()方法
StringBuilder append() 方法将给定参数与此字符串连接起来。
StringBuilderExample.java
class StringBuilderExample{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello ");
sb.append("Java");//现在原始字符串已更改
System.out.println(sb);//打印你好Java
}
}
输出:
Hello Java
2)StringBuilder的insert()方法
StringBuilder insert() 方法在给定位置插入带有此字符串的给定字符串。
StringBuilderExample2.java
class StringBuilderExample2{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello ");
sb.insert(1,"Java");//现在原始字符串已更改
System.out.println(sb);//打印 HJavaello
}
}
输出:
HJavaello
3) StringBuilder 的 replace() 方法
StringBuilder replace() 方法从指定的 beginIndex 和 endIndex 替换给定的字符串。
StringBuilderExample3.java
class StringBuilderExample3{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello");
sb.replace(1,3,"Java");
System.out.println(sb);//打印 HJavalo
}
}
输出:
HJavalo
4) StringBuilder 的 delete() 方法
StringBuilder 类的 delete() 方法删除指定 beginIndex 到 endIndex 之间的字符串。
StringBuilderExample4.java
class StringBuilderExample4{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello");
sb.delete(1,3);
System.out.println(sb);//打印 Hlo
}
}
输出:
Hlo
5) StringBuilder 的 reverse() 方法
StringBuilder 类的 reverse() 方法反转当前字符串。
StringBuilderExample5.java
class StringBuilderExample5{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello");
sb.reverse();
System.out.println(sb);//打印 olleH
}
}
输出:
olleH
6) StringBuilder capacity() 方法
StringBuilder类的capacity()方法返回当前StringBuilder对象的容量。默认容量为16。如果字符数量超过当前容量,它将会增加容量为(旧容量 2)+ 2。例如,如果当前容量为16,则新的容量将为(16 2)+ 2 = 34。
StringBuilderExample6.java
class StringBuilderExample6{
public static void main(String args[]){
StringBuilder sb=new StringBuilder();
System.out.println(sb.capacity());//默认16
sb.append("Hello");
System.out.println(sb.capacity());//现在16
sb.append("Java is my favourite language");
System.out.println(sb.capacity());//现在 (16*2)+2=34 即 (oldcapacity*2)+2
}
}
输出:
16
16
34
7) StringBuilder ensureCapacity() 方法
StringBuilder类的ensureCapacity()方法确保给定容量是当前容量的最小值。如果给定容量大于当前容量,则容量会增加为(原容量 2)+ 2。例如,如果当前容量是16,则新的容量将为(16 2)+ 2 = 34。
StringBuilderExample7.java
class StringBuilderExample7{
public static void main(String args[]){
StringBuilder sb=new StringBuilder();
System.out.println(sb.capacity());//默认16
sb.append("Hello");
System.out.println(sb.capacity());//现在16
sb.append("Java is my favourite language");
System.out.println(sb.capacity());/现在 (16*2)+2=34 即 (oldcapacity*2)+2
sb.ensureCapacity(10);//现在没有变化
System.out.println(sb.capacity());//现在 34
sb.ensureCapacity(50);//现在(34*2)+2
System.out.println(sb.capacity());//现在 70
}
}
输出:
16
16
34
34
70