掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流

創(chuàng)新互聯(lián)公司專(zhuān)注于蒼南企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。蒼南網(wǎng)站建設(shè)公司,為蒼南等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
java.lang.Object
|---java.lang.StringBuffer
public final class StringBuffer
extends Object
implements Appendable, CharSequence, Serializable一個(gè)線(xiàn)程安全的、可變的字符序列。字符串緩沖區(qū)類(lèi)似于字符串,但可以修改。在任何時(shí)候它都包含一些特定的字符序列,但是序列的長(zhǎng)度和內(nèi)容可以通過(guò)某些方法調(diào)用來(lái)改變。
字符串緩沖區(qū)可以安全地被多個(gè)線(xiàn)程使用。這些方法在必要時(shí)同步,以便任何特定實(shí)例上的所有操作都表現(xiàn)得好像它們以某種串行順序發(fā)生,該順序與所涉及的每個(gè)單獨(dú)線(xiàn)程進(jìn)行的方法調(diào)用的順序一致。
StringBuffer 上的主要操作是 append 和 insert 方法,它們被重載以便接受任何類(lèi)型的數(shù)據(jù)。每個(gè)都有效地將給定的數(shù)據(jù)轉(zhuǎn)換為字符串,然后將該字符串的字符附加或插入到字符串緩沖區(qū)。 append 方法總是將這些字符添加到緩沖區(qū)的末尾; insert 方法在指定點(diǎn)添加字符。
例如,如果 z 引用當(dāng)前內(nèi)容為“start”的字符串緩沖區(qū)對(duì)象,則方法調(diào)用 z.append(“l(fā)e”) 將導(dǎo)致字符串緩沖區(qū)包含“startle”,而 z.insert(4, " le") 將更改字符串緩沖區(qū)以包含“starlet”。
一般來(lái)說(shuō),如果 sb 引用一個(gè) StringBuffer 的實(shí)例,那么 sb.append(x) 與 sb.insert(sb.length(), x) 具有相同的效果。
每當(dāng)發(fā)生涉及源序列的操作(例如從源序列追加或插入)時(shí),此類(lèi)僅在執(zhí)行操作的字符串緩沖區(qū)上同步,而不在源上同步。請(qǐng)注意,雖然 StringBuffer 旨在安全地從多個(gè)線(xiàn)程同時(shí)使用,但如果向構(gòu)造函數(shù)或追加或插入操作傳遞了跨線(xiàn)程共享的源序列,則調(diào)用代碼必須確保該操作具有一致且不變的視圖操作期間的源序列。這可以通過(guò)在操作調(diào)用期間持有鎖的調(diào)用者來(lái)滿(mǎn)足,通過(guò)使用不可變的源序列,或者不跨線(xiàn)程共享源序列。
每個(gè)字符串緩沖區(qū)都有一個(gè)容量。只要字符串緩沖區(qū)包含的字符序列的長(zhǎng)度不超過(guò)容量,就不需要分配新的內(nèi)部緩沖區(qū)數(shù)組。如果內(nèi)部緩沖區(qū)溢出,它會(huì)自動(dòng)變大。
除非另有說(shuō)明,否則將 null 參數(shù)傳遞給此類(lèi)中的構(gòu)造函數(shù)或方法將導(dǎo)致拋出 NullPointerException。
從 JDK 5 開(kāi)始,該類(lèi)已經(jīng)補(bǔ)充了一個(gè)為單線(xiàn)程使用而設(shè)計(jì)的等效類(lèi) StringBuilder。通常應(yīng)優(yōu)先使用 StringBuilder 類(lèi),因?yàn)樗С炙邢嗤牟僮?,但速度更快,因?yàn)樗粓?zhí)行同步。
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| StringBuffer() | 構(gòu)造一個(gè)字符串緩沖區(qū),其中沒(méi)有字符,初始容量為 16 個(gè)字符。 |
| StringBuffer(int capacity) | 構(gòu)造一個(gè)沒(méi)有字符且具有指定初始容量的字符串緩沖區(qū)。 |
| StringBuffer(CharSequence seq) | 構(gòu)造一個(gè)字符串緩沖區(qū),該緩沖區(qū)包含與指定 CharSequence 相同的字符。 |
| StringBuffer(String str) | 構(gòu)造一個(gè)字符串緩沖區(qū),初始化為指定字符串的內(nèi)容。 |
| 修飾符和類(lèi)型 | 方法 | 描述 |
|---|---|---|
| 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() | 返回此字符序列的長(zhǎng)度。 |
| 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() | 返回對(duì)象的字符串表示形式。 |
| void | trimToSize() |
| 從接口 java.lang.CharSequence 繼承的方法 |
|---|
| chars, codePoints |
| 從類(lèi) java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
public StringBuffer()
構(gòu)造一個(gè)字符串緩沖區(qū),其中沒(méi)有字符,初始容量為 16 個(gè)字符。
public StringBuffer(int capacity)
構(gòu)造一個(gè)沒(méi)有字符且具有指定初始容量的字符串緩沖區(qū)。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| capacity | 初始容量。 |
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| NegativeArraySizeException | 如果容量參數(shù)小于 0。 |
public StringBuffer(String str)
構(gòu)造一個(gè)字符串緩沖區(qū),初始化為指定字符串的內(nèi)容。 字符串緩沖區(qū)的初始容量是 16 加上字符串參數(shù)的長(zhǎng)度。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| str | 緩沖區(qū)的初始內(nèi)容。 |
public StringBuffer(CharSequence seq)
構(gòu)造一個(gè)字符串緩沖區(qū),該緩沖區(qū)包含與指定 CharSequence 相同的字符。 字符串緩沖區(qū)的初始容量是 16 加上 CharSequence 參數(shù)的長(zhǎng)度。
如果指定的 CharSequence 的長(zhǎng)度小于或等于 0,則返回容量為 16 的空緩沖區(qū)。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| seq | 要復(fù)制的序列。 |
public int length()
從接口復(fù)制的描述:CharSequence
返回此字符序列的長(zhǎng)度。 長(zhǎng)度是序列中 16 位字符的數(shù)量。
指定者:
接口 CharSequence 中的長(zhǎng)度
返回:
此序列中的字符數(shù)
public int capacity()
public void ensureCapacity(int minimumCapacity)
public void trimToSize()
public void setLength(int newLength)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
public char charAt(int index)
從接口復(fù)制的描述:CharSequence
返回指定索引處的 char 值。 索引范圍從零到 length() - 1。序列的第一個(gè) char 值在索引 0 處,下一個(gè)在索引 1 處,依此類(lèi)推,與數(shù)組索引一樣。
如果索引指定的 char 值是代理項(xiàng),則返回代理項(xiàng)值。
指定者:
接口 CharSequence 中的 charAt
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| index | 要返回的 char 值的索引 |
返回:
指定的字符值
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 index 參數(shù)為負(fù)數(shù)或不小于 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名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
public void setCharAt(int index, char ch)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
public StringBuffer append(Object obj)
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sb)
將指定的 StringBuffer 附加到此序列。
StringBuffer 參數(shù)的字符按順序附加到此 StringBuffer 的內(nèi)容,使此 StringBuffer 的長(zhǎng)度增加參數(shù)的長(zhǎng)度。 如果 sb 為 null,則將四個(gè)字符“null”附加到此 StringBuffer。
設(shè) n 為舊字符序列的長(zhǎng)度,即在執(zhí)行 append 方法之前包含在 StringBuffer 中的字符序列。 那么如果k小于n,則新字符序列中索引k處的字符等于舊字符序列中索引k處的字符; 否則,它等于參數(shù) sb 中索引 k-n 處的字符。
此方法在目標(biāo)對(duì)象 this 上同步,但在源 (sb) 上不同步。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| sb | 要附加的 StringBuffer。 |
返回:
對(duì)該對(duì)象的引用。
public StringBuffer append(CharSequence s)
將指定的 CharSequence 附加到此序列。
CharSequence 參數(shù)的字符按順序附加,該序列的長(zhǎng)度增加了參數(shù)的長(zhǎng)度。
此方法的結(jié)果與調(diào)用 this.append(s, 0, s.length()); 完全相同。
此方法在目標(biāo)對(duì)象 this 上同步,但在源對(duì)象上不同步。
如果 s 為 null,則附加四個(gè)字符“null”。
指定者:
在接口 Appendable 中追加
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| s | 要附加的 CharSequence。 |
返回:
對(duì)該對(duì)象的引用。
public StringBuffer append(CharSequence s, int start, int end)
從接口復(fù)制的描述:可附加
將指定字符序列的子序列附加到此 Appendable。
當(dāng) csq 不為空時(shí),以 out.append(csq, start, end) 形式調(diào)用此方法的行為與調(diào)用完全相同
out.append(csq.subSequence(start, end)) 指定者:
在接口 Appendable 中追加
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| s | 從中追加子序列的字符序列。 如果 csq 為 null,則將附加字符,就好像 csq 包含四個(gè)字符“null”。 |
| start | 子序列中第一個(gè)字符的索引 |
| end | 子序列中最后一個(gè)字符之后的字符的索引 |
返回:
對(duì)本附錄的引用
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 start 或 end 為負(fù)數(shù),則 start 大于 end,或者 end 大于 csq.length() |
public StringBuffer append(char[] str)
public StringBuffer append(char[] str, int offset, int len)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
public StringBuffer append(boolean b)
public StringBuffer append(char c)
從接口復(fù)制的描述:可附加
將指定的字符附加到此 Appendable。
指定者:
在接口 Appendable 中追加
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| c | 要附加的字符 |
返回:
對(duì)本附錄的引用
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名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer deleteCharAt(int index)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer replace(int start, int end, String str)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public String substring(int start)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public CharSequence subSequence(int start, int end)
從接口復(fù)制的描述:CharSequence
返回作為此序列子序列的 CharSequence。 子序列以指定索引處的 char 值開(kāi)始,以索引 end - 1 處的 char 值結(jié)束。返回序列的長(zhǎng)度(以字符為單位)為 end - start,因此如果 start == end 則返回空序列 .
指定者:
接口 CharSequence 中的子序列
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| start | 起始索引,包括 |
| end | 結(jié)束索引,獨(dú)占 |
返回:
指定的子序列
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 start 或 end 為負(fù)數(shù),如果 end 大于 length(),或者如果 start 大于 end |
public String substring(int start, int end)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int index, char[] str, int offset, int len)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, Object obj)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, String str)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, char[] str)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int dstOffset, CharSequence s)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
public StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
public StringBuffer insert(int offset, boolean b)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, char c)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
public StringBuffer insert(int offset, int i)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, long l)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, float f)
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
public StringBuffer insert(int offset, double d)
Throws:
| Throw名稱(chēng) | 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()
從類(lèi)復(fù)制的描述:對(duì)象
返回對(duì)象的字符串表示形式。 通常,toString 方法返回一個(gè)“以文本方式表示”該對(duì)象的字符串。 結(jié)果應(yīng)該是一個(gè)簡(jiǎn)潔但信息豐富的表示,易于人們閱讀。 建議所有子類(lèi)重寫(xiě)此方法。
Object 類(lèi)的 toString 方法返回一個(gè)字符串,該字符串由對(duì)象作為其實(shí)例的類(lèi)的名稱(chēng)、at 符號(hào)字符“@”和對(duì)象哈希碼的無(wú)符號(hào)十六進(jìn)制表示形式組成。 換句話(huà)說(shuō),此方法返回一個(gè)等于以下值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode()) 指定者:
接口 CharSequence 中的 toString
覆蓋:
類(lèi) Object 中的 toString
返回:
對(duì)象的字符串表示形式。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流