StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器。
可以提高字符串的操作效率。
比如我拼接一个字符串,进行50000次,看看耗时需要多久,经过测试,是4秒多,如下
long start = System.currentTimeMillis();
String s = "1";
for (int i = 0; i < 50000; i++) {
s += i;
}
System.out.println(s);
long end = System.currentTimeMillis();
System.out.println(end - start); // 4818
使用StringBuilder改造后如下,效率有很大提高,仅需14毫秒
long start = System.currentTimeMillis();
StringBuilder s = new StringBuilder("1");
for (int i = 0; i < 50000; i++) {
s.append(i);
}
System.out.println(s);
long end = System.currentTimeMillis();
System.out.println(end - start); // 14
public StringBuilder() // 创建一个空白可变字符串对象,不含有任何内容 public StringBuilder(String str) // 根据字符串的内容,来创建可变字符串对象
添加数据,并返回对象本身,它这个方法接收的参数可以是任何数据类型,使用方式如下
StringBuilder sb = new StringBuilder();
sb.append("hello");
sb.append(" world ");
sb.append(true);
System.out.println(sb); // hello world true
由于append这个方法返回的是对象本身,因此它支持链式编程,如下
StringBuilder str = new StringBuilder();
str.append("红").append("黄").append("蓝");
System.out.println(str); // 红黄蓝
返回相反的字符序列,使用方式如下
StringBuilder sb = new StringBuilder("hello world");
sb.reverse();
System.out.println(sb); // dlrow olleh
返回长度(字符出现的个数)
StringBuilder sb = new StringBuilder("hello world");
System.out.println(sb.length()); // 11
通过toString就可以实现把StringBuilder转换为String
StringBuilder sb = new StringBuilder("hello world");
String str = sb.toString();
System.out.println(str); // hello world
原文:https://www.cnblogs.com/xulinjun/p/14704209.html