使用String进行字符串的大量拼接时,产生大量垃圾,效率低
使用StringBuilder字符串的大量拼接时,产生垃圾少,效率高
==的使用: 1.基本类型: 比较的是具体的数据值是否相同
2.引用类型: 比较的是地址值是否相同
发现结果都是true: 说明引用变量sb/sb2/sb3 保存的地址值相同,操作的是同一个对象
StringBuilder类的成员方法(没有static修饰,必须使用StringBuilder类的对象调用)
append(...)添加任意类型数据的字符串
reverse() 返回反转的字符序列
toString()将当前StringBuilder对象转换为String对象
//构造一个StringBuilder容器,并将方法参数字符串str添加进去
StringBuilder sb2 = new StringBuilder("HelloWorld");
StringBuilder类支持链式编程的
public class Demo02StringBuilderMethod {
public static void main(String[] args) {
//创建StringBuilder类的对象
StringBuilder sb = new StringBuilder();
//构造一个StringBuilder容器,并将方法参数字符串str添加进去
StringBuilder sb2 = new StringBuilder("HelloWorld");
//append方法:把数据原样添加到StringBuilder容器中
打印引用类型变量,默认调用toString方法(帮助我们把数据转换成字符串的形式)
System.out.println(sb2.toString());//HelloWorld
sb.append(97) .append('a') .append("hello").append(true); //链式编程
System.out.println(sb);
//reverse方法: 实现StringBuilder容器内部的内容进行反转的
sb.reverse();
System.out.println(sb);
//toString方法: 把StringBuilder对象转换成String对象
String s = sb.toString();
System.out.println(s);
}
}
/*
StringBuilder和String相互转换
1.String 转成 StringBuilder
构造方法:
public StringBuilder(String s):
把String类型的方法参数s,通过构造方法转换成StringBuilder对象
2.StringBuilder 转成 String
成员方法:
public String toString():
把调用方法的StringBuilder对象转换成String
*/
public class Demo04Convert {
public static void main(String[] args) {
String s = "ABCDEF";
System.out.println("反转前: "+s);
//String 转成 StringBuilder
StringBuilder sb = new StringBuilder(s);
//实现反转
sb.reverse();
//StringBuilder 转成 String
s = sb.toString();
System.out.println("反转后: "+s);
}
}
/*StringBuilder练习-字符串拼接
需求: 定义一个方法,把int数组中的数据按照指定格式拼接成一个字符串返回,
调用该方法,并在控制台输出结果。
例如 数组为 int[] arr = {1,2,3}; 执行方法后的输出结果为:[1, 2, 3]
三要素: 1.方法名称: myToString 2.参数列表: int[] array
3.返回值类型: String */
public class Demo05PrintArray {
public static void main(String[] args) {
//1.定义int数组array,并初始化
int[] array = {1, 2, 3};
//2.调用myToString方法传递int数组array,获取字符串结果,保存到String变量str中
String str = myToString(array);
//3.打印str
System.out.println("数组内容: "+str);
System.out.println(Arrays.toString(array));
}
//定义myToString方法,获取int数组对应的String内容
public static String myToString(int[] array) {
//1.定义StringBuilder变量sb,初始化值"["
StringBuilder sb = new StringBuilder("[");
//2.使用for循环遍历数组
for (int i = 0; i < array.length; i++) {
//2.1 把当前元素拼接到变量sb中
sb.append(array[i]);
//2.2 如果2.1中拼接的不是最后一个元素
if (i != array.length - 1) {
//2.2.1 拼接", "到变量sb中
sb.append(", ");
}
}
//3.for循环结束后,把"]"拼接到sb中
sb.append("]");
//4.把StringBuilder对象sb转换成String对象并返回
return sb.toString();
}
}