大家好,又见面了,我是你们的朋友全栈君。
StringBuilder概述
StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器。
作用:提高字符串的操作效率。
通过代码可以说明
public class Demo1StringBuilder {
public static void main(String[] args) {
long start = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 50000; i++) {
sb.append(i);
}
long end = System.currentTimeMillis();
System.out.println(end-start); // 6
// method();
}
private static void method() {
long start = System.currentTimeMillis(); // 获取1970年1月1日 0时0分0秒 到当前时间所经过的时间 是毫秒值
String s = "";
for (int i = 0; i < 50000; i++) {
s += i;
}
long end = System.currentTimeMillis(); // 记录循环结束时间
System.out.println(end-start); // 5114
}
}
StringBuilder两种构造方式
public class Demo2StringBuilder {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(); // 无参构造
System.out.println(sb);
StringBuilder sb2 = new StringBuilder("sss"); // 有参构造
System.out.println(sb2);
}
}
StringBuilder的常用方法
appden()方法,表示添加数据
reverse()将字符串反转
toString()将StringBuilder转换成String类型的
具体代码如下
public class Demo3StringBuilder {
public static void main(String[] args) {
append(); // 添加数据
reverse(); // 将字符串反转
length(); // 计算字符串的长度
StringBuilder sb = new StringBuilder();
sb.append("skskk");
// 将StringBuilder转换成String
String s = sb.toString(); // 这里转换 虽然打印结果都一样但是类型不一样
System.out.println(s); // skskk
}
private static void append() {
// 向里边添加数据 通过append添加:并返回对象本身
StringBuilder sb = new StringBuilder();
sb.append(123);
sb.append("asf");
sb.append(true);
System.out.println(sb); // 123asftrue
// 因为返回的是对象本身所以上边的也可以写成
StringBuilder sb1 = new StringBuilder();
sb1.append(123).append("asf").append(true);
System.out.println(sb1); // 123asftrue
// 这里需要注意
StringBuilder sb2 = new StringBuilder();
StringBuilder sb3 = sb2.append("红色");
StringBuilder sb4 = sb2.append("蓝色");
System.out.println(sb2); // 红色蓝色
System.out.println(sb3); // 红色蓝色
System.out.println(sb4); // 红色蓝色 这里的代码优化一下就得到了上边的代码
sb2.append("红色").append("蓝色");
}
private static void reverse() {
StringBuilder sb = new StringBuilder();
sb.append(1).append(2).append(3);
System.out.println("反转之前:"+sb);
sb.reverse(); // 通过reverse将字符串反转
System.out.println("反转之后:"+sb);
}
private static void length() {
StringBuilder sb = new StringBuilder();
sb.append("jlksjdlksjf");
System.out.println("字符串的长度为:"+sb.length()); // 11
}
}
StringBuilder的区别
String:内容是不可变的
StringBuilder:内容是可变的
String s1 = "a";
String s2 = s1+"b";
此处s2 = s1 + "b"; 两个字符串相加,需要先把s1从String类型转换成Stringbuilder类型,然后才能将字符b添加里边,然后生成ab字符串,但是此时ab字符串还是StringBuilder类型。
所以要先将StringBuildr类型转换成String类型才能将ab给s2,这也是为什么StringBuilder比String快的原因.
StringBuilder和String相互转换
1.StringBuilder转换为String
通过toString()就可以实现把StringBuilder转换为String。
String s = sb.toString();
2.String转换为StringBuilder
通过构造方法就可以实现把String转换为StringBuilder。
String s = “ss”;
StringBuilder sb = new StringBuilder(s);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160683.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...