可变字符串
- StringBuffer:
- 可变长字符串,JDK1.0提供,运行效率慢,线程安全
- StringBuilder:
- 可变长字符串,JDK5.0提供,运行效率块,线程不安全
常用的StringBuffer四种方法
/*
StringBuffer和StringBuilder的使用
和String区别: 1.效率比String高; 2.比String节省内存
*/
public class Dome01 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
// 1.append();追加
sb.append("采三秀兮于山间,石磊磊兮葛蔓蔓。");
System.out.println(sb.toString());
sb.append("怨公子兮怅忘归,君思我兮不得闲。");
System.out.println(sb.toString());
// 2.insert();指定位置进行添加
sb.insert(0,"留灵修兮憺忘归,岁既晏兮孰华予。");
System.out.println(sb.toString());
// 3.replace();指定位置进行替换替换
sb.replace(0,16,"------节选:屈原-《九歌·山鬼》:");
System.out.println(sb.toString());
// 4.delete();删除
sb.delete(0,20);
System.out.println(sb.toString());
}
}
运行结果:
采三秀兮于山间,石磊磊兮葛蔓蔓。
采三秀兮于山间,石磊磊兮葛蔓蔓。怨公子兮怅忘归,君思我兮不得闲。
留灵修兮憺忘归,岁既晏兮孰华予。采三秀兮于山间,石磊磊兮葛蔓蔓。怨公子兮怅忘归,君思我兮不得闲。
------节选:屈原-《九歌·山鬼》:采三秀兮于山间,石磊磊兮葛蔓蔓。怨公子兮怅忘归,君思我兮不得闲。
采三秀兮于山间,石磊磊兮葛蔓蔓。怨公子兮怅忘归,君思我兮不得闲。
StringBuffer和StringBuilder效果相同,一般建议使用StringBuffer
测试
验证StringBuffer效率高于String
public class Demo02 {
public static void main(String[] args) {
// 获取当前时间
long start = System.currentTimeMillis();
String string = "" ;
for (int i = 0; i < 9999; i++) {
string+=i ;
}
System.out.println(string);
long end = System.currentTimeMillis();
System.out.println("用时:"+(end-start));
long a = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 9999; i++) {
stringBuilder.append(i);
}
System.out.println(stringBuilder.toString());
long b = System.currentTimeMillis();
System.out.println("用时:"+(b-a));
}
}
运行结果:
012345678910111213(部分)
用时:78
012345678910111213(部分)
用时:0