Java——StringBuilder

概述

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)   // 根据字符串的内容,来创建可变字符串对象

常见的成员方法

append

添加数据,并返回对象本身,它这个方法接收的参数可以是任何数据类型,使用方式如下

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);   // 红黄蓝

reverse

返回相反的字符序列,使用方式如下

StringBuilder sb = new StringBuilder("hello world");
sb.reverse();
System.out.println(sb);   // dlrow olleh

length

返回长度(字符出现的个数)

StringBuilder sb = new StringBuilder("hello world");
System.out.println(sb.length());   // 11

toString

通过toString就可以实现把StringBuilder转换为String

StringBuilder sb = new StringBuilder("hello world");
String str = sb.toString();
System.out.println(str);   // hello world

StringBuilder与String的区别

  • String:内容是不可变的

  • StringBuilder:内容是可变的 

原文地址:https://www.cnblogs.com/xulinjun/p/14704209.html