3.6.9 构建字符串

有些时候,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。采用字符串连接的方式达到此目的效率比较低。每次连接字符串,都会构建一个新的String对象,既耗时,又浪费空间。使用StringBuilder类就可以避免这个问题的发生。

如果需要用许多小段的字符串构建一个字符串,那么应该按照下列步骤进行。首先,构建一个空的字符串构建器:

(有关构造器和new操作符的内容将在第4章详细介绍。)

当每次需要添加一部分内容时,就调用append方法。

在需要构建字符串时就调用toString方法,将可以得到一个String对象,其中包含了构建器中的字符序列。

注释:在JDK5.0中引入StringBuilder类。这个类的前身是StringBuffer,其效率稍有些低,但允许采用多线程的方式执行添加或删除字符的操作。如果所有字符串在一个单线程中编辑(通常都是这样),则应该用StringBuilder替代它。这两个类的API是相同的。

下面的API注释包含了StringBuilder类中的重要方法。

API java.lang.StringBuilder 5.0

·StringBuilder()

构造一个空的字符串构建器。

·int length()

返回构建器或缓冲器中的代码单元数量。

·StringBuilder append(String str)

追加一个字符串并返回this。

·StringBuilder append(char c)

追加一个代码单元并返回this。

·StringBuilder appendCodePoint(int cp)

追加一个代码点,并将其转换为一个或两个代码单元并返回this。

·void setCharAt(int i,char c)

将第i个代码单元设置为c。

·StringBuilder insert(int offset,String str)

在offset位置插入一个字符串并返回this。

·StringBuilder insert(int offset,Char c)

在offset位置插入一个代码单元并返回this。

·StringBuilder delete(int startIndex,int endIndex)

删除偏移量从startIndex到-endIndex-1的代码单元并返回this。

·String toString()

返回一个与构建器或缓冲器内容相同的字符串。