ITEEDU

Java Gossip: StringBuilder 类别

一个String对象的长度是固定的,您不能改变它的内容,或者是附加新的字符至String对象中。

在 J2SE 5.0 提供StringBuilder类别,使用这个类别所产生的对象预设会有16个字符的长度,您也可以自行指定初始长度,如果附加至对象的字符超出可容纳的长度,则StringBuilder对象会自动增加长度。

在StringBuilder中,length()可传回目前对象中的字符长度,而capacity()可传回该对象目前可容纳的字符容量,下面这个程序是个简单的示范:

UseStringBuilder.java
public class UseStringBuilder {
	public static void main(String[] args) {
		StringBuilder strBuilder =
		new StringBuilder("Knowledge is power!");
		System.out.println("内容: " + strBuilder);
		System.out.println("长度: " + strBuilder.length());
		System.out.println("容量: " + strBuilder.capacity());
	}
}

执行结果:

内容: Knowledge is power! 
长度: 19 
容量: 35

StringBuilder拥有几个操作字符串的方法,例如insert()方法可以将字符插入指定的位置,如果该位置以后有字符,则将所有的字符往后移,deleteChar()方法可以删除指定位置的字符,而reserve()方法可以反转字符串,详细的使用可以查询看看 java.lang.StringBuilder 的API说明。

您可能会问 java.lang.StringBuffer 呢?事实上,StringBuilder被设计为与StringBuffer相同的操作接口,但不考虑多执行绪下同步的问题,所以在单执行绪下,您可以将以前使用StringBuffer撰写的程序,通通换为StringBuilder而仍可以运作,并可以获得较好的效能;如果您的程序是在多执行绪下操作,则可以使用StringBuffer,让这个类别自行管理同步问题。