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);
}
}
API之StringBuffer
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.