StringBuffer字符串缓冲区
它是是一个容器,
用于对数据的改变,包括存储、删除、获取、修改
特点:
1、长度是可以变的
2、可以直接操作多个数据类型
3、最终可以通过toString()方法变成字符串
什么时候用StringBuffer
数据类型及个数不确定,而且最终要变成字符串时
1、存储
StringBuffer append():数据添加到结尾
StringBuffer insert(index,数据):数据添加至index位置
2、删除
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end
StringBuffer deleteCharAt(int):删除缓冲区中指定位置的字符
3、获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end) //返回的是String
4、修改
StringBuffer replace(int start, int end, String str) :指定起始位置,替换成指定内容,含头不含尾
void setCharAt(int index, char ch) //替换某一位置的字符
5、反转
StringBuffer reverse()
6、将StringBuffer中指定的数据存储到字符数组中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
StringBuffer只是一个容器,任何数据的增删改查,都是基于容器。
class StringBufferDemo { public static void main(String[] args) { StringBuffer sb=new StringBuffer(); //创建一个空的StringBuffer StringBuffer sb1=sb.append(111); System.out.println("sb==sb1:"+(sb==sb1)); //true。sb和sb1是同一对象,这就是容器的意义 System.out.println(sb); //111 System.out.println(sb1); //111 } }
class StringBufferDemo { public static void main(String[] args) { method_add(); method_del(); method_update(); method_rev(); method_getChars(); } public static void method_add() //StringBuffer存储操作 { StringBuffer sb=new StringBuffer(); //创建一个空的容器 sb.append(34); //append,末尾加整数34 sop(sb.toString()); //输出:34。 toString(),转成字符串。 sb.append(true).append("===="); //方法调用链 sop(sb.toString()); //输出:34true==== sb.insert(2,"***"); //insert,第2角标位处,加*** sop(sb.toString()); //输出:34***true==== } public static void method_del() //StringBuffer删除操作 { StringBuffer sb=new StringBuffer("abcde"); sb.delete(1,3); //删除第1、第2角标的字符 sop(sb.toString()); //输出:ade //sb.delete(0,sb.length()); //清空缓冲区 //sb.delete(1,2); //删除单个 sb.deleteCharAt(1); //删除单个 sop(sb.toString()); //输出:ae } public static void method_update() //StringBuffer修改操作 { StringBuffer sb=new StringBuffer("abcde"); //sb.replace(1,4,"==="); //输出:a===e。含头不含尾 sb.setCharAt(1,'G'); //输出:aGcde。角标1的字符替换成G。 sop(sb.toString()); } public static void method_rev() //StringBuffer反转操作 { StringBuffer sb=new StringBuffer("abcde"); sb.reverse(); //输出:edcba sop(sb.toString()); } public static void method_getChars() //StringBuffer getChars操作 { StringBuffer sb=new StringBuffer("abcdefg"); char[] chs=new char[6]; sb.getChars(1,4,chs,1); //将abcdefg中的下标1、2、3位,放到数组chs中,从下标1开始放 for (int x=0;x<chs.length ;x++ ) { sop("chs["+x+"]="+chs[x]); } /* 输出: chs[0]= chs[1]=b chs[2]=c chs[3]=d chs[4]= chs[5]= */ } public static void sop(Object obj) { System.out.println(obj); } }