大可制作:QQ群:31564239(asp|jsp|php|mysql)

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,让这个类自行管理同步问题。