一.StringBuffer概述
1.StringBuffer是一个容器
1.1 特点:
长度可以变化;
可以直接操作多个数据类型;
最终会通过toString()方法变成字符串;
1.2 存储:StringBuffer append():将指定数据作为参数添加到已有数据结尾处
1.3 StringBuffer insert(index,数据):可以将数据插入到指定index位置处;
1 public static void method_add(){ 2 StringBuffer sb=new StringBuffer(); 3 sb.append("abc").append(true).append(34); 4 StringBuffer sb1=sb.append(34); 5 sop("sb==sb1:"+(sb==sb1)); //结果为true 6 sb.insert(1, "qq"); 7 sop(sb.toString()); //结果为aqqbctrue34 8 }
2.删除
2.1 StringBuffer delet(start,end):删除缓冲区中的数据,包含start,不包含end;
2.2 StringBuffer deleteCharAt(index):删除指定位置的字符
1 public static void method_del(){ 2 StringBuffer sb=new StringBuffer("abcde"); 3 sb.delete(1, 3); 4 sop(sb.toString()); //结果为ade 5 //清空缓冲区 6 sb.delete(0, sb.length()); 7 sb.deleteCharAt(2); //结果为abde 8 }
3.获取
3.1 char charAt(index)
3.2 int indexOf(String str);
3.3 int lastIndexOf(String str);
3.4 int length();
3.5 String substring(int start,int end)
4.修改
4.1 StringBuffer replace(start,end,string);
4.2 void setCharAt(int index,char ch);
1 public static void method_update(){ 2 StringBuffer sb=new StringBuffer("abcde"); 3 sb.replace(1, 4, "java"); //结果为ajavae 4 sb.setCharAt(2, ‘k‘); //结果为abkde 5 }
5.反转
StringBuffer reverse();
6.void getChars(int srcBegin,int srcEnd,char[] dest,int destBegin);
将缓冲区中指定数据存储到指定字符数组中
public static void method_saveChar(){ StringBuffer sb=new StringBuffer("abcdef"); char[] chs=new char[6]; sb.getChars(1, 4, chs, 1); }
二.StringBuilder
1.1 JDK1.5版本以后出现了StringBuilder
1.2 StringBuffer是线程同步,安全性较高
1.3 StringBuilder是线程不同步,安全性较低,但是效率较高,开发建议使用StringBuilder
1.4 java升级三因素:提高效率,简化书写,提高安全性