目錄
- StringBuffer和String的差別
- StringBuffer 轉 String
- String 轉 StringBuffer
- StringBuffer的一些方法
-
- StringBuffer的容器初始量與容器後續容量的變化
- StringBuffer拼接字元串的方法
- StringBuffer的删除功能
- StringBuffer的替換和反轉
- StringBuffer的截取功能
StringBuffer和String的差別
- 基本資料類型的值傳遞,不改變其值
- 引用資料類型的值傳遞,改變其值
- String類雖然是引用資料類型,但是他當作參數傳遞時和基本資料類型是一樣的
private static void demo8() {
/*
* 基本資料類型的值傳遞,不改變其值
* 引用資料類型的值傳遞,改變其值
* String類雖然是引用資料類型,但是他當作參數傳遞時和基本資料類型是一樣的
*/
String s = "123";
System.out.println(s); //123
change(s); //将String字元串當作參數傳遞給change()方法時,它的值不會改變
System.out.println(s); //123
System.out.println("-------------");
StringBuffer sbf = new StringBuffer();
sbf.append("123"); //StringBuffer字元串當作參數傳遞給change()方法時,它的值會發生變化
System.out.println(sbf); //123
change(sbf);
System.out.println(sbf); //123def
}
public static void change(StringBuffer s) {
// TODO Auto-generated method stub
s.append("def");
}
public static void change(String s) {
// TODO Auto-generated method stub
s += "def"; //值不會發生變化
}
StringBuffer 轉 String
- new 個對象轉
- 使用toString()方法轉
- 使用subString()方法轉
private static void demo6() {
/*
* StringBuffer 轉 String
*/
StringBuffer sbf = new StringBuffer("abc");
String s1 = new String(sbf);
System.out.println(s1);
String s2 = sbf.toString();
System.out.println(s2);
String s3 = sbf.substring(0,sbf.length());
System.out.println(s3);
}
String 轉 StringBuffer
- new 一個對象轉
- append()方法轉,是StringBuffer特有的方法
private static void demo7() {
/*
* String 轉 StringBuffer
*/
String s = "abc";
StringBuffer sbf = new StringBuffer(s);
System.out.println(sbf);
StringBuffer sbf2 = new StringBuffer(s);
sbf2.append("abc");
System.out.println(sbf2);
}
StringBuffer的一些方法
StringBuffer的容器初始量與容器後續容量的變化
- 預設大小為16
- 可以修改大小
- 參數為字元串,大小為字元串長度加上容器大小
private static void demo1() {
/*
* StringBuffer的容器初始量與容器後續容量的變化
*/
StringBuffer sbf = new StringBuffer();
StringBuffer sbf2 = new StringBuffer(20);
StringBuffer sbf3 = new StringBuffer("ajgoag");
System.out.println(sbf.length()); //0
System.out.println(sbf.capacity()); //16 預設大小為16
System.out.println(sbf2.capacity()); //20 修改為20
System.out.println(sbf3.length()); //6
System.out.println(sbf3.capacity()); //22 字元串長度加上容器大小
}
StringBuffer拼接字元串的方法
- append()方法,拼接字元串
- insert()方法,插入字元串
private static void demo2() {
/*
* StringBuffer拼接字元串的方法
*/
StringBuffer sbf = new StringBuffer("abc");
sbf.append("def"); //字元串拼接
System.out.println(sbf); //重寫了toString()方法,不然是一個位址值 abcdef
sbf.insert(2, "123"); //插入字元串 ab123cdef
System.out.println(sbf); //ab123cdef
}
StringBuffer的删除功能
- deleteCharAt(),删除指定索引的單個字元串
- delete(int a, int b), 删除指定索引到指定索引的字元串
private static void demo3() {
/*
* StringBuffer的删除功能
*/
StringBuffer sbf = new StringBuffer("abcdef");
sbf.deleteCharAt(1); //删除指定索引的字元
System.out.println(sbf); //acdef
sbf.delete(2, 5); //删除指定索引到指定索引位置的字元串
System.out.println(sbf); //ac
}
StringBuffer的替換和反轉
- replace(1, 5, “1234”),替換指定索引到指定索引的字元串
- reverse(),使字元串反轉
private static void demo4() {
/*
* StringBuffer的替換和反轉
*/
StringBuffer sbf = new StringBuffer("abcdef");
sbf.replace(1, 5, "1234"); //将制定索引的字元串替換為自己指定的
System.out.println(sbf); //a1234f
sbf.reverse(); //字元串反轉的方法
System.out.println(sbf); //f4321a
}
StringBuffer的截取功能
private static void demo5() {
/*
* StringBuffer的截取功能
*/
StringBuffer sbf = new StringBuffer("abcdef");
String s1 = sbf.substring(1); //substring()方法有傳回值 截取指定索引後的字元串
System.out.println(s1); //bcdef
String s2 = sbf.substring(1, 3); //截取指定索引到指定索引的字元串
System.out.println(s2); //bc
}