Java核心类-StringBuilder

2019-12-24  本文已影响0人  chrisghb

如果用String来做循环+拼接字符串时,每次循环都会创建新的字符串对象。这样,绝大部分字符串都是临时对象,不但浪费内存,还会影响GC效率。
为了能高效拼接字符串,Java标准库提供了StringBuilder,它是一个长度可变对象,可以预分配缓冲区,这样,往StringBuilder中新增字符时,不会创建新的临时对象:

StringBuilder sb = new StringBuilder(1024);
for (int i = 0; i < 1000; i++) {
    sb.append(',');
    sb.append(i);
}
String s = sb.toString();

StringBuilder还可以进行链式操作,因为其内部定义的方法会返回thisthis代表实例本身。这样,就可以不断调用自身的其他方法。
StringBufferStringBuilder的线程安全版本,效率没有StringBuilder高,现在很少使用。

StringBuilder strB = new StringBuilder();
1、append(String str)/append(Char c)
//字符串连接
strB.append("ch")
2、toString()
//返回一个与构建起或缓冲器内容相同的字符串
strB.toString()
3、appendcodePoint(int cp)
//追加一个代码点,并将其转换为一个或两个代码单元并返回this
strB.appendCodePoint(2)
4、setCharAt(int i, char c)
//将第 i 个代码单元设置为 c(可以理解为替换)
strB.setCharAt(2, 'd');
5、insert(int offset, String str)/insert(int offset, Char c)
//在指定位置之前插入字符(串)
 strB.insert(2, "LS")
6、delete(int startIndex,int endIndex)
//删除起始位置(含)到结尾位置(不含)之间的字符串
 strB.delete(2, 4)
上一篇 下一篇

猜你喜欢

热点阅读