API之StringBuffer

package com.rayNotes;

import org.junit.Test;

/**
 * - StringBuffer是字符緩衝區,是一個容器
 *      - 長度可以變化
 *      - 可以對內容通過指定的方法進行修改
 *      - 容器對象一般具備對容器中元素的操作功能,如: 增刪改查
 *      - 最終緩衝區存儲完的數據都會變成字符串
 *
 * - 查看API幫助文檔,我們發現StringBuffer類有一個空參構造方法,如下:
        StringBuffer()
        API幫助文檔對其的解釋是:
        構造一個其中不帶字符的字符串緩衝區,其初始容量爲16個字符。
 *  
 * - 當超出內部數組長度後,
 *      新建數組長度要是原數組的1.x(1.5或者1.75等)倍數,
 *      並將原數組的數據複製到新數組中,並將新的元素也添加到新數組中
 *
 * @author ray
 *
 */
public class StringBufferTest {
    /**
     *      - 先創建一個字符串緩衝區容器
     *      - 將要組成字符串的元素先存儲起來
     *      - 最後將緩衝區中填充的數據變成字符串
     */
    String str1 = "a"+4+'c';
    String str2 = new StringBuffer().append("a").append(4).append('c').toString();

    /**
     *  - 改
     *      - replace
     *      - setCharAt
     */
//  @Test
    public void method_update() {
        String sbc="sbc";
        String newstring = sbc.replace('c', 'v');
//      sop(newstring.toString());
//      sop(sbc.toString());

        StringBuffer sb = new StringBuffer("abcdef");
//      StringBuffer sb1 = "abcdefs"; // error
        sb.replace(1, 4, sbc);
        sb.setCharAt(0, 'z');
//      sop(sb);

        sb.reverse();//反轉:容器的操作
//      sop(sb);
        char[] dst = new char[5];
        int dstBegin=0;
        sb.getChars(0, 6, dst, dstBegin);//getchar():【】,首地址爲0
        sop(dst);
    }

    /**
     * - 刪
     *      - delete(from,to) 從from起,到to 前
     */
//  @Test
    public void method_delete() {
        StringBuffer sb = new StringBuffer("abcde");
//      sb.delete(2, 3);//【2,3)
        //清空緩存區 sb = "";
//      sb.delete(0, sb.length());
        sb.deleteCharAt(2);
        sop("delete:sb = "+sb);
    }

    /**
     *  - 增
     *      - append 加到末尾
     *      - insert 插入到指定index位置
     */
//  @Test
    public void method_add() {
        StringBuffer sb = new StringBuffer();
        // 方法調用鏈
        sb.append("string").append(true);
        StringBuffer sb1 = sb.append(23);
        sop("sb1:"+(sb1==sb));//true

        sb.append(23);
        sb.insert(1, "qqq");//可以將數據插入到指定index位置
        sop("sb1:"+sb);
    }

    private void sop(String str) {
        System.out.println(str);
    }
    private void sop(StringBuffer str) {
        System.out.println(str);
    }
    private void sop(char[] str) {
        System.out.println(str);
    }
}
發佈了36 篇原創文章 · 獲贊 29 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章