/* StringBuffer 是字符串缓冲区 是一个容器 特点: 1,长度是可以变化的 2,可以直接操作多种数据类型 3,最终会通过toString方法变成字符串 C creat U updata r read D delete 1,存储 StringBuffer append():将指定数据作为参数添加到已有数据结尾处 StringBuffer insert(offset ,数据);可以将数据插入到指定位置 2,删除 StringBuffer delete(start ,end );删除缓冲区中的数据,包含start,不包含end StringBuffer deleteCharAt(index),删除指定位置的字符 3,获取 char charAt(int index); int indexOf(String str); int lastIndexOf(String str); int length(); String substring(int start,int end); 4,修改(替换) StringBuffer replace(start,end,str); void setCharAt(int offSet,char ch); 5,翻转 StringBuffer reverse(); 6, 将缓冲区中指定数据存储到指定字符数组中 void getChars(int srcBegin,int srcEnd,char []dst,int dstBegin) JDK1.5 版本之后出现了StringBuilder StringBuffer 是线程同步 StringBuilder 是线程不同步 以后开发,建议使用StringBuffer 使用方法和StringBuffer 一样 升级三个因素 1,提高效率 2,简化书写 3,提高安全性 */ class StringBufferDemo { public static void main(String []args) { //method_add(); //method_del(); //method_update(); StringBuffer sb = new StringBuffer("abcdef"); char [] chs = new char[4]; sb.getChars(1,4,chs,1); for(int x = 0 ; x<chs.length; x++) { sop("chs["+x+"]"+ chs[x]+ " "); } } public static void method_update() { StringBuffer sb = new StringBuffer("abcdef"); //StringBuilder sb = new StringBuilder("abcdef"); sb.replace(1,4,"java"); sb.setCharAt(2,'K'); sop(sb); } public static void method_del() { StringBuffer sb = new StringBuffer("abcdef"); sb.delete(1,4); //清空内存缓冲区 //sb = new StringBuffer();也可以清空 不过浪费了空间 //sb.delete(0,sb.length()); sb.deleteCharAt(2); sop(sb.toString()); } public static void method_add() { StringBuffer sb1 = new StringBuffer(); sb1.append("abc").append(true).append(90); sop(sb1); sb1.insert(1,"qq"); sop(sb1.toString()); } public static void sop(Object obj) { System.out.println(obj); } }