有时,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。采用字符串链接的凡是达到此目的的效率比较低。每次连接字符串,都会构建一个新的String对象,既耗时有浪费空间。使用StringBuilder类就可以避免这个问题。
首先,构建一个空的字符串的构建器:
StringBuilder builder = new StringBuilder();
当每次需要添加一部分内容时,就调用append()方法。
builder.append(ch); //appends a single character
builder.append(str); // appends a string
在需要构建字符串时就调用toString()方法,将可以得到一个String对象,其中包含了构建器中的字符序列。
String completedString = builder.toString() ;
StringBuilder builder = new StringBuilder();
String s1 = "我爱你";
String s2 = "中国";
builder.append(s1);
builder.append(s2);
String s3 = builder.toString();
System.out.println(s3); //我爱你中国
java.lang.StringBuilder 类中的重要方法
一个代码单元就是一个字符的意思
方法名 | 返回值类型 | 作用 |
StringBuilder | 构建一个空的字符串构建器 | |
length | int | 返回构建器或缓冲器中的代码单元数量 |
append(String str) | StringBuilder | 追加一个字符串并返回this |
append(char c) | StringBuilder | 追加一个代码单元并返回this |
appendCodePoint( int cp) | StringBuilder | 追加一个代码点,并将其转换为一个或两个代码单元并返回this |
setCharAt( int i , char c) | void | 将第i个代码单元设置为c |
insert( int offset,String str) | StringBuilder | 在offset位置插入一个字符串并返回this |
insert( int offset,Char c) | StringBuilder | 在offset位置插入一个代码单元并返回this |
delete(int startIndex,int endIndex) | StringBuilder | 删除偏移量从startIndex到-endIndex-1的代码单元并返回this。 |
toString() | String | 返回一个与构建器或缓冲器内容相同的字符串 |
StringBuilder builder = new StringBuilder();
String s1 = "我爱你";
String s2 = "中国";
builder.append(s1);
builder.append(s2);
System.out.println("缓冲器中的字符数:" + builder.length());
String s3 = builder.toString(); // 缓冲器中的字符数:5
System.out.println(s3); // 我爱你中国