Java基礎(四十一)-Java基礎類庫
阿新 • • 發佈:2018-12-20
StringBuffer類
背景:
1:String類是在所有專案中一定會使用到的一個功能類;
(1):每一個字串的常量都屬於一個String類的匿名物件;
(2):String有兩個常量池:靜態常量池,執行時常量池;
(3):String類物件例項化建議使用賦值的形式完成,這樣可以直接將物件儲存在物件池中以供下次重用。
2:StringBuffer類
3觀察String和StringBuffer的對比
public class Test { public static void main(String[] args) { String str = "Hello " ; change(str) ; System.out.println(str); } public static void change(String temp) { temp += "World !" ; // 內容並沒有發生改變 } } //輸出結果是hello
public class JavaAPIDemo {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer("Hello ") ;
change(buf) ;
System.out.println(buf.toString());
}
public static void change(StringBuffer temp) {
temp.append("World !") ; // 內容並沒有發生改變
}
}
public class Test { public static void main(String[] args) { StringBuffer buf = new StringBuffer("Hello ") ; change(buf) ; System.out.println(buf.toString()); } public static void change(StringBuffer temp) { temp.append("World !") ; // 內容發生改變 } } //輸出結果 Hello World !
3:分析一下已有的問題
public class Test {
public static void main(String[] args) {
String strA = "www.mldn.cn" ;
String strB = "www." + "mldn" + ".cn" ;
System.out.println(strA == strB);
}
}
//輸出結果:
//true
上述程式碼中,strB的物件內容不算是改變,對於現在的strB當程式編譯之後會變為如下的形式,
StringBuffer buf = new StringBuffer(); buf.append(“www.”).append(“mldn”).append(“cn”);
所有的+在編譯之後變成了StringBuffer中的append()方法,
4:StringBuffer與String類物件之間本來就可以直接互相轉換:
String類物件變為StringBuffer可以依靠StringBuffer類的構造方法或利用append()方法;
所有類物件都可以通過toString()方法將其變為String型別。
5:StringBuffer類中的一些方法
public class Test {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer() ;
buf.append(".cn").insert(0, "www.").insert(4, "mldn") ;
System.out.println(buf);
}
}
//www.mldn.cn
public class Test {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer() ;
buf.append("Hello World !").delete(6, 12).insert(6, "MLDN") ;
System.out.println(buf);
}
}
//Hello MLDN!
public class Test {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer() ;
buf.append("Hello World !") ;
System.out.println(buf.reverse());
}
}
//! dlroW olleH
6:StringBuilder