一个String对象的长度是固定的,您不能改变它的内容,或者是附加新的字符至String对象中。
在 J2SE 5.0 提供StringBuilder类别,使用这个类别所产生的对象预设会有16个字符的长度,您也可以自行指定初始长度,如果附加至对象的字符超出可容纳的长度,则StringBuilder对象会自动增加长度。
在StringBuilder中,length()可传回目前对象中的字符长度,而capacity()可传回该对象目前可容纳的字符容量,下面这个程序是个简单的示范:
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,让这个类别自行管理同步问题。