UM2L12——StringBuilder
UM2L12——StringBuilder
本章代码关键字
1 | stringBuilder.append() //添加字符串 |
StringBuilder
Java中的StringBuilder
和C#基本一致,主要是用于处理会频繁修改的字符串的
如果你的字符串变量会频繁被修改,建议使用StringBuilder
可以帮助我们节约性能
StringBuilder节约性能的体现
下面的代码会分别输出String
字符串拼接10000次和StringBuilder
字符串拼接10000次所消耗的时间(单位:毫秒):
1 | String str = new String(""); |
输出:
1 | String拼接消耗的时间:57 |
从这个例子可以对比出,在频繁修改字符串时,使用StringBuilder
效率会高很多
同时,由于StringBuilder
会在长度足够大时才扩容一次,
因此,频繁修改StringBuilder
产生的垃圾也少于直接修改字符串
StringBuilder中的常用方法
-
初始化构造函数
1
StringBuilder stringBuilder = new StringBuilder("");
-
拼接字符串
append(内容)
1
2
3StringBuilder stringBuilder = new StringBuilder("");
stringBuilder.append(1);
stringBuilder.append("123123123"); -
插入字符串
insert(位置,内容)
1
2
3
4
5StringBuilder stringBuilder = new StringBuilder("");
stringBuilder.append(1);
stringBuilder.append("123123123");
stringBuilder.insert(1, "唐老狮");
System.out.println(stringBuilder);输出:
1
1唐老狮123123123
-
删除指定字符
delete(开始位置,结束位置)
删除的内容为
开始位置 ~ 结束位置-1
,删除同样是左包含而右不包含的1
2
3
4
5
6
7
8
9StringBuilder stringBuilder = new StringBuilder("");
stringBuilder.append(1);
stringBuilder.append("123123123");
String string = stringBuilder.toString();
System.out.println(stringBuilder);
stringBuilder.insert(1, "唐老狮");
System.out.println(stringBuilder);
stringBuilder.delete(1, 4);
System.out.println(stringBuilder);输出:
1
21唐老狮123123123
1123123123 -
转为
String
打印时其实不需要刻意执行一次
toString()
,因为控制台输出会自动转换为字符串1
2
3
4
5StringBuilder stringBuilder = new StringBuilder("")
stringBuilder.append(1);
stringBuilder.append("123123123");
String string = stringBuilder.toString();
System.out.println(string);输出:
1
1123123123
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!