-
StringBuffer
鎖定
- 中文名
- 字符串緩衝
- 外文名
- StringBuffer
- 作 用
- 存儲和操作字符串
- 包 含
- 包含多個字符的字符串數據
- 對 象
- 對象是可以擴充和修改的
目錄
StringBuffer介紹
StringBuffer是使用緩衝區的,本身也是操作字符串的,但與String類不同,String類中的內容一旦聲明之後不可改變,改變的只是其內存地址的指向,而StringBuffer中的內容是可以改變的
[1]
。
對於StringBuffer而言,本身是一個具體的操作類,所以不能像String那樣採用直接賦值的方式進行對象實例化,必須通過構造方法完成。
StringBuffer連接字符操作
- 當一個字符串的內容需要被經常改變時就要使用StringBuffer。
- 在StringBuffer中使用append()方法,完成字符串的連接操作。
StringBufferStringBuffer方法
以下是 StringBuffer 類支持的主要方法:
序號 | 方法描述 |
---|---|
1 | public StringBuffer append(String s) 將指定的字符串追加到此字符序列。 |
2 | public StringBuffer reverse() 將此字符序列用其反轉形式取代。 |
3 | public delete(int start, int end) 移除此序列的子字符串中的字符。 |
4 | public insert(int offset, int i) 將int參數的字符串表示形式插入此序列中。 |
5 | replace(int start, int end, String str) 使用給定String中的字符替換此序列的子字符串中的字符。 |
下面的列表裏的方法和 String 類的方法類似:
序號 | 方法描述 |
---|---|
1 | int capacity() 返回當前容量。 |
2 | char charAt(int index) 返回此序列中指定索引處的char值。 |
3 | void ensureCapacity(int minimumCapacity) 確保容量至少等於指定的最小值。 |
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 將字符從此序列複製到目標字符數組dst。 |
5 | int indexOf(String str) 返回第一次出現的指定子字符串在該字符串中的索引。 |
6 | int indexOf(String str, int fromIndex) 從指定的索引處開始,返回第一次出現的指定子字符串在該字符串中的索引。 |
7 | int lastIndexOf(String str) 返回最右邊出現的指定子字符串在此字符串中的索引。 |
8 | int lastIndexOf(String str, int fromIndex) 返回 String 對象中子字符串最後出現的位置。 |
9 | int length() 返回長度(字符數)。 |
10 | void setCharAt(int index, char ch) 將給定索引處的字符設置為ch。 |
11 | void setLength(int newLength) 設置字符序列的長度。 |
12 | CharSequence subSequence(int start, int end) 返回一個新的字符序列,該字符序列是此序列的子序列。 |
13 | String substring(int start) 返回一個新的String,它包含此字符序列當前所包含的字符子序列。 |
14 | String substring(int start, int end) 返回一個新的String,它包含此序列當前所包含的字符子序列。 |
15 | String toString() 返回此序列中數據的字符串表示形式。 |
StringBufferStringBuffer對象的初始化
StringBuffer對象的初始化不像String類的初始化一樣,Java提供的有特殊的語法,而通常情況下一般使用構造方法進行初始化。
例如:
StringBuffer s = new StringBuffer();
這樣初始化出的StringBuffer對象是一個空的對象,就是我犯的錯誤。
如果需要創建帶有內容的StringBuffer對象,則可以使用:
StringBuffer s = new StringBuffer(“abc”);
這樣初始化出的StringBuffer對象的內容就是字符串”abc”。
需要注意的是,StringBuffer和String屬於不同的類型,也不能直接進行強制類型轉換。
StringBuffer字符串連接操作
package 字符串處理; public class StringBufferDemo01{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 聲明StringBuffer對象 buf.append("Hello ") ; // 向StringBuffer中添加內容 buf.append("World").append("!!!") ; // 可以連續調用append()方法 buf.append("\n") ; // 添加一個轉義字符 buf.append("數字 = ").append(1).append("\n") ; // 添加數字 buf.append("字符 = ").append('C').append("\n"); // 添加字符 buf.append("布爾 = ").append(true) ; // 添加布爾值 System.out.println(buf) ; // 直接輸出對象,調用toString() } };
打印結果:
Hello World!!! 數字 = 1 字符 = C布爾 = true
StringBuffer字符串添加內容
public class StringBufferDemo03{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 聲明StringBuffer對象 buf.append("World!!") ; // 添加內容 buf.insert(0,"Hello ") ; // 在第一個內容之前添加內容 System.out.println(buf) ; buf.insert(buf.length(),"偶my耶~") ; // 在最後添加內容 System.out.println(buf) ; }};
打印內容
Hello World!! Hello World!! 偶my耶~