可变字符串:
-
StringBuffer:可变长字符串,JDK1.0提供,运行效率慢,线程安全。
-
StringBuilder:可变长字符串,JDK5.0提供,运行效率快,线程不安全。
-
StringBuffer和StringBuilder他们两个方法是相同的,可以直接改变new的对象来实现相同的操作
-
StringBuffer和StringBuilder的基本方法
- 案例
public static void main(String[] args) { //想执行哪一个 注释另一个 //StringBuffer sb = new StringBuffer(); StringBuilder sb=new StringBuilder(); //StringBuffer的常用方法 //1.append() 附加 附加的时候是依次往后附加 sb.append("Java最好"); System.out.println(sb.toString()); sb.append("Java最牛"); System.out.println(sb.toString()); //2.insert() 添加 可以在指定位置之前添加数据 第一个参数是从下标几开始 第二个参数是添加的东西 sb.insert(6,"好好学习Java"); System.out.println(sb.toString()); //3.replace() 替换 第一个参数是从下标几开始 第二个参数是到下标几 第三个参数是替换的东西 含头不含尾部 sb.replace(10,14,"天天向上"); System.out.println(sb.toString()); //4.delete() 删除 第一个参数是从下标几开始删除 第二个参数是到几 含头不含尾部 sb.delete(0,4); System.out.println(sb.toString()); //清空 sb.delete(0,sb.length()); System.out.println(sb.length()); //输出 sb的长度 如果全部删除了那么就为0 } }
-
String和StringBuffer比较效率
-
案例
* * 验证StringBuilder效率高于string * */ public class TestStringBuilder { public static void main(String[] args) { //开始时间 long begin=System.currentTimeMillis(); //string String string=""; for (int i = 0; i < 99999; i++) { string+=i; } System.out.println(string); //用时:35019 //StringBuilder // StringBuffer sb = new StringBuffer(); // for (int i = 0; i < 99999; i++) { // sb.append(i); // } // System.out.println(sb.toString()); //用时:49 //结束时间 long end=System.currentTimeMillis(); System.out.println("用时:"+(end-begin)); } }