package day13; /* StringBuffer是字符串缓冲区。 是一个容器。 特点: 1,长度是可变化的。 2,可以字节操作多个数据类型。 3,最终会通过toString方法变成字符串。 C create U update R read D delete 1,存储。 StringBuffer append():将指定数据作为参数添加到已有数据结尾处。 StringBuffer insert(index,数据):可以将数据插入到指定index位置。 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,string); void setCharAt(int index, char ch) ; 5,反转。 StringBuffer reverse(); 6, 将缓冲区中指定数据存储到指定字符数组中。 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) JDK1.5 版本之后出现了StringBuilder. StringBuffer是线程同步。 当多线程的时候就使用StringBuffer StringBuilder是线程不同步。 当是单线程的时候使用StringBuilder 以后开发,建议使用StringBuilder 升级三个因素: 1,提高效率。 2,简化书写。 3,提高安全性。 */ public class StringBufferDemo10 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub StringBuffer sb=new StringBuffer("abcdefjhe"); //追加 //sb.append(true); // 插入 //sb.insert(3, "hello"); // 删除 //sb.delete(2, 3); // 删除指定位置上数据 // sb.deleteCharAt(1); //System.out.println(sb.toString()); //获取指定位置上的 字符 //char c=sb.charAt(2); //获取指定字符的索引 //int i=sb.indexOf("3"); //System.out.println(i); //获取截取的子串 //String str=sb.substring(3); // 替换 指定长度的字符串 // StringBuffer sb1=sb.replace(1, 4, "12232425"); //System.out.println(sb1); // 字符串的反转 //StringBuffer sb2=sb.reverse(); //System.out.println(sb2); /*将缓冲区中指定数据存储到指定字符数组中。 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) */ char[] c=new char[sb.length()]; sb.getChars(0, c.length, c, 0); for (int i = 0; i < c.length; i++) { System.out.println("c["+i+"]="+c[i]); } } }