話說StringBuilder【小白學Java-學習筆記15】
阿新 • • 發佈:2021-02-19
技術標籤:#Java的康莊大道
1.StringBuilder的原理
String類: 字串是常量,它們的值在建立後不可以改變。字串的底層是被final修飾的陣列,不能改變,是個常量 private final byte[] value; StringBuilder類: 字串緩衝區,可以提高字串的操作效率(可以看作一個長度可以發生變化的字串)。底層也是一個數組,但是沒有被final修飾,可以改變長度。 byte[] value = new byte[16] StringBuilder在記憶體中始終是一個數組,佔用空間少,效率高。如果內容超出了StringBuilder的容量,StringBuilder會自動擴容
2.StringBuilder的方法
2.1.StringBuilder的構造方法
package stringBuilder.demo1;
/**
* StringBuilder的構造方法
* 空參構造 StringBuilder():構造一個不帶任何字元的字串生成器,其初始容量為16個字元
* 帶參構造 StringBuilder(String str):構造一個字串生成器,並初始化為指定的字串內容
*/
public class Demo01StringBuilder {
public static void main(String[] args) {
//空參構造 StringBuilder()
StringBuilder bu1 = new StringBuilder();
System.out.println("bu1:"+bu1);//bu1:
//帶參構造 StringBuilder(String str)
StringBuilder bu2 = new StringBuilder("abc");
System.out.println("bu2:"+bu2);//bu2:abc
}
}
2.2StringBuilder的成員方法
1.append()
package stringBuilder.demo1;
/**
* StringBuilder的成員方法
* public StringBulider append(..):新增任意型別資料的字串形式,並返回當前物件自身
*/
public class Demo02StringBuilder {
public static void main(String[] args) {
//建立StringBuilder物件
StringBuilder bu = new StringBuilder();
System.out.println("bu:"+bu);
System.out.println("============");
//使用StringBuilder的append方法
StringBuilder bu1 = bu.append("abc");
System.out.println("bu1:"+bu1);
System.out.println("============");
//引用型別,使用“==”比較時比較的是地址值
System.out.println(bu==bu1);
System.out.println("===================");
/**
* 使用append方法無需接收返回值
* 所以當我們呼叫StringBuilder的append方法時可以使用鏈式程式設計,即
* bu.append(123).bu.append("hello").bu.append(6.66).bu.append("你好");
*/
bu.append(123);
bu.append("hello");
bu.append(6.66);
bu.append("你好");
System.out.println(bu);
}
}
執行結果
2.toString()
package stringBuilder.demo1;
/**
* StringBuilder和String可以相互轉換
* String --> StringBuilder:可以使用StringBuilder的構造方法StringBuilder(String str)
* StringBuilder --> String:可以使用StringBuilder的toString()方法
*/
public class Demo03StringBuilder {
public static void main(String[] args) {
//String --> StringBuilder
String str = "hello";
System.out.println("str:"+str);
//利用StringBuilder的構造方法將String物件變成StringBuilder物件
StringBuilder bu1 = new StringBuilder(str);
//往StringBuilder物件裡面新增資料world
bu1.append("world");
System.out.println("bu1:"+bu1);
System.out.println("============");
//StringBuilder --> String
String s = bu1.toString();//利用StringBuilder的toString方法將StringBuilder物件變成String物件
System.out.println("s:"+s);
}
}
執行結果