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

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想