StringBuffer字符串緩衝區數組
它是是一個容器,
用於對數據的改變,包括存儲、刪除、獲取、修改app
特色:
一、長度是能夠變的
二、能夠直接操做多個數據類型
三、最終能夠經過toString()方法變成字符串spa
何時用StringBuffer
數據類型及個數不肯定,並且最終要變成字符串時code
一、存儲
StringBuffer append():數據添加到結尾
StringBuffer insert(index,數據):數據添加至index位置對象
二、刪除
StringBuffer delete(start,end):刪除緩衝區中的數據,包含start,不包含end
StringBuffer deleteCharAt(int):刪除緩衝區中指定位置的字符blog
三、獲取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end) //返回的是String字符串
四、修改
StringBuffer replace(int start, int end, String str) :指定起始位置,替換成指定內容,含頭不含尾
void setCharAt(int index, char ch) //替換某一位置的字符get
五、反轉
StringBuffer reverse()
string
六、將StringBuffer中指定的數據存儲到字符數組中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
ast
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); //刪除第一、第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中的下標一、二、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); } }