可變字符串StringBuffer類的常用方法
創建 StringBuffer類
創建一個新的 StringBuffer對象必須用 new 方法,而不能像String 對象那樣直接引用字符串常量。
StringBuffer sbf = new StringBuffer(); // 創建一個對象, 無初始值
StringBuffer sbf = new StringBuffer("abcd"); // 創建一個對象, 初始值為“abcd”
StringBuffer sbf = new StringBuffer(32); // 創建一個對象, 初始容量為 32個字符。
append()方法
將參數轉換成字符串, 將所得字符串中的字符追加到此序列中未尾。
sbf. append(obj);
sbf: 任意 StringBuffer對象。
obj: 任意數據類型的對象, 例如String、int、double、Boolean等, 都要轉變成字符串的表示形式追加。
創建 StringBuffer對象, 使用append()追加字符序列。
public class StringBufferAppend {
public static void main(String[] args) {
StringBuffer sbf = new StringBuffer("門前大橋下,"); // 創建 StringBuffer對象
sbf. append("遊過一群鴨,"); // 追加字符串常量
StringBuffer tmp = new StringBuffer("快來快來數一數,"); // 追加StringBuffer對象
sbf. append(tmp);
int x = 24678;
sbf. append(x); // 追加整型變量
System. out. println(sbf. toString());// 輸出
}
}
運行結果:
門前大橋下,遊過一群鴨,快來快來數一數,24678
setCharAt(int index, char ch)方法
將給定索引處的字符修改為 ch。
sbf. setCharAt(index, ch);
sbf: 任意 StringBuffer對象。
index: 被替換字符的索引。
ch: 替換後的字符。
創建一個 StringBuffer 對象, 將索引為 3 的字符修改成'A'。
public class StringBufferSetCharAt {
public static void main(String[] args) {
StringBuffer sbf = new StringBuffer("0123456");
System. out. println("sbf的原值是: " sbf);
sbf. setCharAt(3, 'A'); // 將索引為3 的字符改成‘A’
System. out. println("修改後的值是: " sbf);
運行結果:
sbf的原值是: 0123456
修改後的值是: 012A456
insert(int offset, String str)方法
將字符串插入此字符序列中。
sbf. insert(offset, str);
sbf: 任意StringBuffer對象。
offset: 插入的索引。
str: 插入的字符串。
使用StringBuffer將字符串“古詩春曉”修改成“春眠不覺曉”。
子字符串從指定的開始處start並延伸到索引end - 1處的字符end - 1或如果不存在此類字符則延伸到序列的結尾。 首先刪除子字符串中的字符,然後在start處插入指定的String。
public class StringBufferChange {
public static void main(String[] args) {
StringBuffer sbf= new StringBuffer("古詩春曉");
sbf=sbf.replace(0,5,"春眠不覺曉");//將從0開始到5的字符串替換為“春眠不覺曉”
}
}
創建一個 StringBuffer 對象,在索引為 5 的位置插入字符串“A”。
public class StringBufferInsert {
public static void main(String[] args) {
StringBuffer sbf= new StringBuffer("012345");
System. out. println("sbf的原值為: " sbf);
sbf = sbf. insert(5, "A"); //在索引為 5 的位置插入“A”, 將返回值賦給sbf 自己
System. out. println("修改之後的值為: " sbf);
運行結果:
sbf的原值為: 012345
修改之後的值為: 01234A5
reverse()方法
該方法可以將字符串反序輸出。
sbf. reverse();
其中, sbf表示任意StringBuffer對象。
創建一個 StringBuffer對象,將其字符序列反序輸出。
public class StringBufferReverse {
public static void main(String[] args) {
StringBuffer sbf = new StringBuffer("同一個世界");
System. out. println("sbf的原值為: " sbf);
sbf = sbf. reverse();// 將字符序列 sbf反轉
System. out. println("修改之後的值為: " sbf);
運行結果:
sbf的原值為: 同一個世界
修改之後的值為: 界世個一同
delete(int start, int end)方法
移除此序列的子字符串中的字符。該子字符串是從指定的索引start處開始,一直到索引end- 1處, 如果end-1 超出最大索引范圍,則一直到序列尾部。如果 start 等於end, 則不發生任何更改。
sbf. delete(start, end)
sbf: 任意 StringBuffer 對象。
start: 起始索引(包含)。
end: 結束索引(不包含)。
創建一個 StringBuffer對象,刪除從索引4 開始至索引6 之前的內容。含頭不含尾
public class StringBufferDelete {
public static void main(String[] args) {
StringBuffer sbf = new StringBuffer("天行健, 君子以自強不息");
System. out. println("sbf的原值為: " sbf);
sbf = sbf. delete(4, 6); //刪除從索引4 開始至索引6之前的內容
System. out. println("刪除之後的值為: " sbf);
}
}
運行結果:
sbf的原值為:天行健,君子以自強不息
刪除之後的值為: 天行健,以自強不息
![](https://news.xinpengboligang.com/upload/keji/8b311d89d7a5aa19d5a5a7758815bbe2.jpeg)
StringBuilder類的常用方法