Java学习笔记(八)--字符串生成器
字符串生成器
Java StringBuffer 和 StringBuilder 類
創建成功的字符串對象,其長度是固定的,內容不能被改變和編譯。當對字符串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。和 String 類不同的是,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,并且不產生新的未使用對象。
StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)。由于 StringBuilder 相較于 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類。然而在應用程序要求線程安全的情況下,則必須使用 StringBuffer 類。
一、StringBuffer類
StringBuffer的四個構造方法如下:
StringBuffer() 構造一個其中不帶字符的字符串緩沖區,其初始容量為 16 個字符。StringBuffer(CharSequence seq) public java.lang.StringBuilder(CharSequence seq) 構造一個字符串緩沖區,它包含與指定的 CharSequence 相同的字符。StringBuffer(int capacity) 構造一個不帶字符,但具有指定初始容量的字符串緩沖區。StringBuffer(String str) 構造一個字符串緩沖區,并將其內容初始化為指定的字符串內容以下是 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 中的字符替換此序列的子字符串中的字符。 |
二、StringBuilder類
StringBuilder類和StringBuffer類功能基本相似,方法也差不多,主要區別在于StringBuffer類的方法是多線程安全的,而StringBuilder不是線程安全的,相比而言,StringBuilder類會略微快一點。
| StringBuilder() | 構造一個不包含任何字符且初始容量為16個字符的字符串生成器。 |
| StringBuilder(int capacity) | 構造一個不帶任何字符且capacity參數指定的初始容量的字符串生成器。 |
| StringBuilder(CharSequence seq) | 構造一個字符串構建器,其中包含與指定的字符相同的字符CharSequence。 |
| StringBuilder(String str) | 構造一個字符串構建器,初始化為指定字符串的內容。 |
下面的列表里的方法和 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() 返回此序列中數據的字符串表示形式。 |
三、API文檔
想要了解更多的StringBuffer類方法可以查詢java.lang.StringBuffer的API說明;StringBuilder類方法在java.lang.StringBuilder中。
閱讀最新在線文檔 。
總結
以上是生活随笔為你收集整理的Java学习笔记(八)--字符串生成器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习笔记(七)--格式化字符串及
- 下一篇: 浅探C指针(一)--初识指针