介绍
- StringBuilder是一个可变的字符串的操作类,我们可以把它看成是一个对象容器。
- 使用StringBuilder的核心作用:操作字符串的性能比String要更高(如拼接、修改等)。
StringBuilder 构造器
名称 | 说明 |
public StringBuilder() | 创建一个空白的可变的字符串对象,不包含任何内容 |
public StringBuilder(String str) | 创建一个指定字符串内容的可变字符串对象 |
StringBuilder常用方法
方法名称 | 说明 |
public StringBuilder append(任意类型) | 添加数据并返回StringBuilder对象本身 |
public StringBuilder reverse() | 将对象的内容反转 |
public int length() | 返回对象内容长度 |
public String toString() | 通过toString()就可以实现把StringBuilder转换为String |
使用
即便是如何操作最终还是会恢复为String类型
append(任意类型):拼接对象
public class Dome {
public static void main(String[] args) {
StringBuilder s = new StringBuilder();
s.append("A"); //字符串拼接到s对象中
System.out.println(s); //将会输出A 而不是输出对象地址
//因为在StringBuilder已经重写了toString方法
}
}
官方的append源码:
//链式编程
StringBuilder a = new StringBuilder();
a.append(1).append(2).append(3); //return返回对象继续拼接
System.out.println(a); //此时返回的对象就是123
reverse():反转对象
StringBuilder a = new StringBuilder("国中你爱我");
a.reverse(); //将对象反转
System.out.println(a); //此时将输出”我爱你中国“
length():返回对象长度
StringBuilder a = new StringBuilder("我爱你中国");
System.out.println(a.length());//将输出对象长度 "我爱你中国"将返回5
toString()
通过toString()就可以实现把StringBuilder转换为String
小案例
通过案例来熟悉使用StringBuilder类
利用StringBuilder类设计一个方法用于输出任意整型数组的内容,要求输出成如下格式:
“该数组内容为:”[1, 2, 3, 4, 5]“
思路:
- 定义一个方法,要求该方法能够接收数组,并输出数组内容。
- 定义一个静态初始化的数组,调用该方法,并传入该数组。
public class Dome {
public static void main(String[] args) {
//定义一个数组
int[] a1 = {1,2,3,4,5};
System.out.println(toString(a1));
int[] a2 = null;
System.out.println(toString(a2));
}
//定义一个方法,要求该方法能够接收数组
public static String toString(int[] a){
if (a != null){ //判断不为空
//拼接内容
StringBuilder s = new StringBuilder("[");
for (int i = 0; i < a.length; i++) {
s.append(a[i]).append(i == a.length-1 ? "":",");//链式编程拼接内容
}
s.append("]");
return s.toString(); //将内容变为String类型 并返回
}else {
return null;
}
}
}
执行结果: