一、StringBuilder 类
1.1、StringBuilder 概述
-
StringBuilder 是一个可变的字符串类,避免了 String 进行拼接的时候会创建一个新的 String 对象,浪费内存空间。
-
String 和 StringBuilder 的区别:
- String:内容是不可变的。
- StringBuilder:内容是可变的
1.2、StringBuilder 构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
1.2.1、创建空白可变字符串
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.length():"+sb.length());
1.2.2、根据字符串内容创建
StringBuilder sb2 = new StringBuilder("hello");
System.out.println("sb2:"+sb2);
System.out.println("sb2.length():"+sb2.length());
1.3、StringBuilder 的添加和反转方法
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
1.3.1、append() 方法
-
append
方法可以进行链式编程:对象名.append("元素1").append("元素2")[...]
// 创建 StringBuilder 对象
StringBuilder sb = new StringBuilder();
// 追加数据,并返回到 hello 对象中
StringBuilder hello = sb.append("hello");
System.out.println("sb:" + hello);
1.3.2、reverse() 方法
// 创建 StringBuilder 对象
StringBuilder sb = new StringBuilder();
// 添加数据
sb.append("hello");
// 反转数据
sb.reverse();
System.out.println("hello:" + sb);
1.4、StringBuilder 和 String 相互转换
1.4.1、StringBuilder 转换为 String
-
public String toString()
:通过 toString() 就可以实现把 StringBuilder 转换为 String。
StringBuilder sb = new StringBuilder();
sb.append("hello");
// 通过 toString() 方法,把 StringBuilder 字符串转换为 String 字符串。
String s = sb.toString();
System.out.println(s);
1.4.2、String 转换为 StringBuilder
-
public StringBuilder(String s)
:通过构造方法就可以实现把 String 转换为 StringBuilder。
String s = "hello";
// 通过构造方法把 String 字符串转换为 StringBuilder 字符串
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);