StringBuilder
1.StringBuilder概述
- 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免。我们可以通过StringBuilder类来解决这个问题。
- StringBuilder是一个可变的字符串类,我们可以把它看成一个容器,这里说的可变是指StringBuilder对象中的内容是可变的。
String和StringBuilder的区别:
- String中内容是不可变得
- StringBuild中的内容是可变的
2.StringBuilder构造方法
构造方法活命 | 说明 |
---|---|
public StringBuilder() | 创建一个空白的可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容来创建可变的字符串对象 |
示例:
package com.itheima_02;
public class StringBuilderDemo01 {
public static void main(String[] args) {
//StringBuilder的两种构造方法:
//public StringBuilder():创建一个空白的可变字符串对象,不含有任何内容
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.length():"+ sb.length());
//public StringBuilder(String str):根据字符串的内容来创建可变的字符串对象
StringBuilder sb2 = new StringBuilder("abc");
System.out.println("sb2:"+sb2);
System.out.println("sb2.length():"+ sb2.length());
}
}
3.StringBuilder的添加和反转方法
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象自身 |
public StringBuilder reverse() | 返回相反的字符串序列 |
//创建对象
//public StringBuilder append(任意类型)添加数据,并返回对象自身
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = sb.append("hello");
System.out.println("sb:" + sb);
System.out.println("sb2:" + sb2);
System.out.println(sb == sb2);
//因为append返回的对象自身,所以sb和sb2所指向的为同一块区域
示例:
package com.itheima_02;
public class StringBuilder02 {
public static void main(String[] args) {
//创建对象
//public StringBuilder append(任意类型)添加数据,并返回对象自身
StringBuilder sb = new StringBuilder("hello");
// sb.append("world");
// sb.append("你好");
// sb.append("世界");
// sb.append(999);
//链式编程
sb.append("world").append("你好").append("世界").append(999);
System.out.println("sb:" + sb);
//public StringBuilder reverse()返回相反的字符串序列
sb.reverse();
System.out.println("sb.reverse():"+sb);
}
}
4.StringBuilder和String相互转换
4.1 StringBuilder转换为String
public String toString():通过toString()就可以实现把StringBuilder转换为String
//StringBuilder 转换为 String
StringBuilder sb = new StringBuilder();
sb.append("hello");
//String s = sb;//错误的做法
//public String toString():通过toString()就可以实现把StringBuilder转换为String
String s = sb.toString();
System.out.println(s);
4.2 String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder
String s = "hello";
//StringBuilder sb = s; //错误的做法
//public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);