W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
java.lang.Object
|---java.lang.StringBuffer
public final class StringBuffer
extends Object
implements Appendable, CharSequence, Serializable
一個線程安全的、可變的字符序列。字符串緩沖區(qū)類似于字符串,但可以修改。在任何時候它都包含一些特定的字符序列,但是序列的長度和內容可以通過某些方法調用來改變。
字符串緩沖區(qū)可以安全地被多個線程使用。這些方法在必要時同步,以便任何特定實例上的所有操作都表現得好像它們以某種串行順序發(fā)生,該順序與所涉及的每個單獨線程進行的方法調用的順序一致。
StringBuffer 上的主要操作是 append 和 insert 方法,它們被重載以便接受任何類型的數據。每個都有效地將給定的數據轉換為字符串,然后將該字符串的字符附加或插入到字符串緩沖區(qū)。 append 方法總是將這些字符添加到緩沖區(qū)的末尾; insert 方法在指定點添加字符。
例如,如果 z 引用當前內容為“start”的字符串緩沖區(qū)對象,則方法調用 z.append(“l(fā)e”) 將導致字符串緩沖區(qū)包含“startle”,而 z.insert(4, " le") 將更改字符串緩沖區(qū)以包含“starlet”。
一般來說,如果 sb 引用一個 StringBuffer 的實例,那么 sb.append(x) 與 sb.insert(sb.length(), x) 具有相同的效果。
每當發(fā)生涉及源序列的操作(例如從源序列追加或插入)時,此類僅在執(zhí)行操作的字符串緩沖區(qū)上同步,而不在源上同步。請注意,雖然 StringBuffer 旨在安全地從多個線程同時使用,但如果向構造函數或追加或插入操作傳遞了跨線程共享的源序列,則調用代碼必須確保該操作具有一致且不變的視圖操作期間的源序列。這可以通過在操作調用期間持有鎖的調用者來滿足,通過使用不可變的源序列,或者不跨線程共享源序列。
每個字符串緩沖區(qū)都有一個容量。只要字符串緩沖區(qū)包含的字符序列的長度不超過容量,就不需要分配新的內部緩沖區(qū)數組。如果內部緩沖區(qū)溢出,它會自動變大。
除非另有說明,否則將 null 參數傳遞給此類中的構造函數或方法將導致拋出 NullPointerException。
從 JDK 5 開始,該類已經補充了一個為單線程使用而設計的等效類 StringBuilder。通常應優(yōu)先使用 StringBuilder 類,因為它支持所有相同的操作,但速度更快,因為它不執(zhí)行同步。
構造函數 | 描述 |
---|---|
StringBuffer() | 構造一個字符串緩沖區(qū),其中沒有字符,初始容量為 16 個字符。 |
StringBuffer(int capacity) | 構造一個沒有字符且具有指定初始容量的字符串緩沖區(qū)。 |
StringBuffer(CharSequence seq) | 構造一個字符串緩沖區(qū),該緩沖區(qū)包含與指定 CharSequence 相同的字符。 |
StringBuffer(String str) | 構造一個字符串緩沖區(qū),初始化為指定字符串的內容。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
StringBuffer | append(boolean b) | |
StringBuffer | append(char c) | 將指定的字符附加到此 Appendable。 |
StringBuffer | append(char[] str) | |
StringBuffer | append(char[] str, int offset, int len) | |
StringBuffer | append(double d) | |
StringBuffer | append(float f) | |
StringBuffer | append(int i) | |
StringBuffer | append(long lng) | |
StringBuffer | append(CharSequence s) | 將指定的 CharSequence 附加到此序列。 |
StringBuffer | append(CharSequence s, int start, int end) | 將指定字符序列的子序列附加到此 Appendable。 |
StringBuffer | append(Object obj) | |
StringBuffer | append(String str) | |
StringBuffer | append(StringBuffer sb) | 將指定的 StringBuffer 附加到此序列。 |
StringBuffer | appendCodePoint(int codePoint) | |
int | capacity() | |
char | charAt(int index) | 返回指定索引處的 char 值。 |
int | codePointAt(int index) | |
int | codePointBefore(int index) | |
int | codePointCount(int beginIndex, int endIndex) | |
StringBuffer | delete(int start, int end) | |
StringBuffer | deleteCharAt(int index) | |
void | ensureCapacity(int minimumCapacity) | |
void | getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) | |
int | indexOf(String str) | |
int | indexOf(String str, int fromIndex) | |
StringBuffer | insert(int offset, boolean b) | |
StringBuffer | insert(int offset, char c) | |
StringBuffer | insert(int offset, char[] str) | |
StringBuffer | insert(int index, char[] str, int offset, int len) | |
StringBuffer | insert(int offset, double d) | |
StringBuffer | insert(int offset, float f) | |
StringBuffer | insert(int offset, int i) | |
StringBuffer | insert(int offset, long l) | |
StringBuffer | insert(int dstOffset, CharSequence s) | |
StringBuffer | insert(int dstOffset, CharSequence s, int start, int end) | |
StringBuffer | insert(int offset, Object obj) | |
StringBuffer | insert(int offset, String str) | |
int | lastIndexOf(String str) | |
int | lastIndexOf(String str, int fromIndex) | |
int | length() | 返回此字符序列的長度。 |
int | offsetByCodePoints(int index, int codePointOffset) | |
StringBuffer | replace(int start, int end, String str) | |
StringBuffer | reverse() | |
void | setCharAt(int index, char ch) | |
void | setLength(int newLength) | |
CharSequence | subSequence(int start, int end) | 返回作為此序列子序列的 CharSequence。 |
String | substring(int start) | |
String | substring(int start, int end) | |
String | toString() | 返回對象的字符串表示形式。 |
void | trimToSize() |
從接口 java.lang.CharSequence 繼承的方法 |
---|
chars, codePoints |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
public StringBuffer()
構造一個字符串緩沖區(qū),其中沒有字符,初始容量為 16 個字符。
public StringBuffer(int capacity)
構造一個沒有字符且具有指定初始容量的字符串緩沖區(qū)。
參數:
參數名稱 | 參數描述 |
---|---|
capacity | 初始容量。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NegativeArraySizeException | 如果容量參數小于 0。 |
public StringBuffer(String str)
構造一個字符串緩沖區(qū),初始化為指定字符串的內容。 字符串緩沖區(qū)的初始容量是 16 加上字符串參數的長度。
參數:
參數名稱 | 參數描述 |
---|---|
str | 緩沖區(qū)的初始內容。 |
public StringBuffer(CharSequence seq)
構造一個字符串緩沖區(qū),該緩沖區(qū)包含與指定 CharSequence 相同的字符。 字符串緩沖區(qū)的初始容量是 16 加上 CharSequence 參數的長度。
如果指定的 CharSequence 的長度小于或等于 0,則返回容量為 16 的空緩沖區(qū)。
參數:
參數名稱 | 參數描述 |
---|---|
seq | 要復制的序列。 |
public int length()
從接口復制的描述:CharSequence
返回此字符序列的長度。 長度是序列中 16 位字符的數量。
指定者:
接口 CharSequence 中的長度
返回:
此序列中的字符數
public int capacity()
public void ensureCapacity(int minimumCapacity)
public void trimToSize()
public void setLength(int newLength)
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException |
public char charAt(int index)
從接口復制的描述:CharSequence
返回指定索引處的 char 值。 索引范圍從零到 length() - 1。序列的第一個 char 值在索引 0 處,下一個在索引 1 處,依此類推,與數組索引一樣。
如果索引指定的 char 值是代理項,則返回代理項值。
指定者:
接口 CharSequence 中的 charAt
參數:
參數名稱 | 參數描述 |
---|---|
index | 要返回的 char 值的索引 |
返回:
指定的字符值
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException | 如果 index 參數為負數或不小于 length() |
public int codePointAt(int index)
public int codePointBefore(int index)
public int codePointCount(int beginIndex, int endIndex)
public int offsetByCodePoints(int index, int codePointOffset)
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException |
public void setCharAt(int index, char ch)
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException |
public StringBuffer append(Object obj)
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sb)
將指定的 StringBuffer 附加到此序列。
StringBuffer 參數的字符按順序附加到此 StringBuffer 的內容,使此 StringBuffer 的長度增加參數的長度。 如果 sb 為 null,則將四個字符“null”附加到此 StringBuffer。
設 n 為舊字符序列的長度,即在執(zhí)行 append 方法之前包含在 StringBuffer 中的字符序列。 那么如果k小于n,則新字符序列中索引k處的字符等于舊字符序列中索引k處的字符; 否則,它等于參數 sb 中索引 k-n 處的字符。
此方法在目標對象 this 上同步,但在源 (sb) 上不同步。
參數:
參數名稱 | 參數描述 |
---|---|
sb | 要附加的 StringBuffer。 |
返回:
對該對象的引用。
public StringBuffer append(CharSequence s)
將指定的 CharSequence 附加到此序列。
CharSequence 參數的字符按順序附加,該序列的長度增加了參數的長度。
此方法的結果與調用 this.append(s, 0, s.length()); 完全相同。
此方法在目標對象 this 上同步,但在源對象上不同步。
如果 s 為 null,則附加四個字符“null”。
指定者:
在接口 Appendable 中追加
參數:
參數名稱 | 參數描述 |
---|---|
s | 要附加的 CharSequence。 |
返回:
對該對象的引用。
public StringBuffer append(CharSequence s, int start, int end)
從接口復制的描述:可附加
將指定字符序列的子序列附加到此 Appendable。
當 csq 不為空時,以 out.append(csq, start, end) 形式調用此方法的行為與調用完全相同
out.append(csq.subSequence(start, end))
指定者:
在接口 Appendable 中追加
參數:
參數名稱 | 參數描述 |
---|---|
s | 從中追加子序列的字符序列。 如果 csq 為 null,則將附加字符,就好像 csq 包含四個字符“null”。 |
start | 子序列中第一個字符的索引 |
end | 子序列中最后一個字符之后的字符的索引 |
返回:
對本附錄的引用
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException | 如果 start 或 end 為負數,則 start 大于 end,或者 end 大于 csq.length() |
public StringBuffer append(char[] str)
public StringBuffer append(char[] str, int offset, int len)
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException |
public StringBuffer append(boolean b)
public StringBuffer append(char c)
從接口復制的描述:可附加
將指定的字符附加到此 Appendable。
指定者:
在接口 Appendable 中追加
參數:
參數名稱 | 參數描述 |
---|---|
c | 要附加的字符 |
返回:
對本附錄的引用
public StringBuffer append(int i)
public StringBuffer appendCodePoint(int codePoint)
public StringBuffer append(long lng)
public StringBuffer append(float f)
public StringBuffer append(double d)
public StringBuffer delete(int start, int end)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer deleteCharAt(int index)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer replace(int start, int end, String str)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public String substring(int start)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public CharSequence subSequence(int start, int end)
從接口復制的描述:CharSequence
返回作為此序列子序列的 CharSequence。 子序列以指定索引處的 char 值開始,以索引 end - 1 處的 char 值結束。返回序列的長度(以字符為單位)為 end - start,因此如果 start == end 則返回空序列 .
指定者:
接口 CharSequence 中的子序列
參數:
參數名稱 | 參數描述 |
---|---|
start | 起始索引,包括 |
end | 結束索引,獨占 |
返回:
指定的子序列
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException | 如果 start 或 end 為負數,如果 end 大于 length(),或者如果 start 大于 end |
public String substring(int start, int end)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int index, char[] str, int offset, int len)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, Object obj)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, String str)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, char[] str)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int dstOffset, CharSequence s)
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException |
public StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException |
public StringBuffer insert(int offset, boolean b)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, char c)
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException |
public StringBuffer insert(int offset, int i)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, long l)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, float f)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, double d)
Throws:
Throw名稱 | Throw描述 |
---|---|
StringIndexOutOfBoundsException |
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
public int lastIndexOf(String str)
public int lastIndexOf(String str, int fromIndex)
public StringBuffer reverse()
public String toString()
從類復制的描述:對象
返回對象的字符串表示形式。 通常,toString 方法返回一個“以文本方式表示”該對象的字符串。 結果應該是一個簡潔但信息豐富的表示,易于人們閱讀。 建議所有子類重寫此方法。
Object 類的 toString 方法返回一個字符串,該字符串由對象作為其實例的類的名稱、at 符號字符“@”和對象哈希碼的無符號十六進制表示形式組成。 換句話說,此方法返回一個等于以下值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
指定者:
接口 CharSequence 中的 toString
覆蓋:
類 Object 中的 toString
返回:
對象的字符串表示形式。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: