1. 程式人生 > 其它 >話說StringBuilder【小白學Java-學習筆記15】

話說StringBuilder【小白學Java-學習筆記15】

技術標籤:#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);
    }
}

執行結果
在這裡插入圖片描述