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