可变字符串
- StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全
- StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全
package com.commonClass.stringClass;
/*
StringBuffer和StringBuild的使用
和String的区别:
- 效率比String高
- 比String节省内存
*/
public class Demo04 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();//对于StringBuffer,重点掌握其四个方法
//StringBuilder sb=new StringBuilder(); 用StringBuilder也是完全一样的
//1.append();追加
sb.append("java世界第一");//可以添加各种类型,但要选择相对应的
System.out.println(sb.toString());
sb.append("java真香");
System.out.println(sb.toString());
sb.append("java不错");
//2.insert();添加,插入
sb.insert(2,"我在最前面");//前面指的是位置,后面是要插入的内容(形式一定要看清楚)位置从0开始 0 x 1 x 2 x 3
System.out.println(sb.toString());
//3.replace();替换(可指定位置)
sb.replace(0,7,"这是替换内容");//replace(int start,int end,String str)
System.out.println(sb.toString());
//4.delete();删除
sb.delete(1,3);//delete(int start,int end) 可以达到清空的目的:delete(0,sb.length)
System.out.println(sb.toString());
//开始时间
long start=System.currentTimeMillis();
String string="";
for (int i = 0; i < 99999; i++) {
string+=i;
}
System.out.println(string);
long end=System.currentTimeMillis();
System.out.println("用时:"+(end-start));
}
}
输出结果为
java世界第一
java世界第一java真香
ja我在最前面va世界第一java真香java不错
这是替换内容va世界第一java真香java不错
这换内容va世界第一java真香java不错
0123456789101112131415161718......999969999799998
用时:15379
/*
StringBuffer和StringBuild的使用
和String的区别:
- 效率比String高
- 比String节省内存
*/
public class Demo04 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();//对于StringBuffer,重点掌握其四个方法
//StringBuilder sb=new StringBuilder(); 用StringBuilder也是完全一样的
//1.append();追加
sb.append("java世界第一");//可以添加各种类型,但要选择相对应的
System.out.println(sb.toString());
sb.append("java真香");
System.out.println(sb.toString());
sb.append("java不错");
//2.insert();添加,插入
sb.insert(2,"我在最前面");//前面指的是位置,后面是要插入的内容(形式一定要看清楚)位置从0开始 0 x 1 x 2 x 3
System.out.println(sb.toString());
//3.replace();替换(可指定位置)
sb.replace(0,7,"这是替换内容");//replace(int start,int end,String str)
System.out.println(sb.toString());
//4.delete();删除
sb.delete(1,3);//delete(int start,int end) 可以达到清空的目的:delete(0,sb.length)
System.out.println(sb.toString());
//开始时间
long start=System.currentTimeMillis();
// String string="";
// for (int i = 0; i < 99999; i++) {
// string+=i;
// }
// System.out.println(string);
StringBuilder sb1=new StringBuilder();
for (int i = 0; i < 99999; i++) {
sb.append(i);
}
System.out.println(sb.toString());
long end=System.currentTimeMillis();
System.out.println("用时:"+(end-start));
}
}
输出结果为
java世界第一
java世界第一java真香
ja我在最前面va世界第一java真香java不错
这是替换内容va世界第一java真香java不错
这换内容va世界第一java真香java不错
这换内容va世界第一java真香java不错
0123456789101112131415161718......999969999799998
用时:20
可以发现StringBuilder用时明显要少的多的多,效率更高