新聞中心
StringBuilder

10年積累的網(wǎng)站建設、成都網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有朝陽免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
java.lang.Object
|---java.lang.StringBuilder
public final class StringBuilder
extends Object
implements Appendable, CharSequence, Serializable可變的字符序列。此類提供與 StringBuffer 兼容的 API,但不保證同步。此類設計用于在單個線程正在使用字符串緩沖區(qū)的地方(通常情況下)用作 StringBuffer 的替代品。在可能的情況下,建議優(yōu)先使用此類而不是 StringBuffer,因為它在大多數(shù)實現(xiàn)下會更快。
StringBuilder 的主要操作是 append 和 insert 方法,它們被重載以便接受任何類型的數(shù)據(jù)。每個都有效地將給定的數(shù)據(jù)轉(zhuǎn)換為字符串,然后將該字符串的字符附加或插入到字符串構(gòu)建器中。 append 方法總是將這些字符添加到構(gòu)建器的末尾; insert 方法在指定點添加字符。
例如,如果 z 引用當前內(nèi)容為 "start" 的字符串構(gòu)建器對象,則調(diào)用 z.append("le") 的方法將導致字符串構(gòu)建器包含 "startle",而 z.insert(4, " le") 將更改字符串生成器以包含“starlet”。
一般來說,如果 sb 引用 StringBuilder 的實例,則 sb.append(x) 與 sb.insert(sb.length(), x) 具有相同的效果。
每個字符串生成器都有容量。只要字符串構(gòu)建器中包含的字符序列的長度不超過容量,就不需要分配新的內(nèi)部緩沖區(qū)。如果內(nèi)部緩沖區(qū)溢出,它會自動變大。
StringBuilder 的實例對于多線程使用是不安全的。如果需要這種同步,則建議使用 StringBuffer。
除非另有說明,否則將 null 參數(shù)傳遞給此類中的構(gòu)造函數(shù)或方法將導致拋出 NullPointerException。
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| StringBuilder() | 構(gòu)造一個其中沒有字符且初始容量為 16 個字符的字符串構(gòu)建器。 |
| StringBuilder(int capacity) | 構(gòu)造一個字符串構(gòu)建器,其中沒有字符,初始容量由容量參數(shù)指定。 |
| StringBuilder(CharSequence seq) | 構(gòu)造一個字符串構(gòu)建器,該構(gòu)建器包含與指定 CharSequence 相同的字符。 |
| StringBuilder(String str) | 構(gòu)造一個初始化為指定字符串內(nèi)容的字符串構(gòu)建器。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| StringBuilder | append(boolean b) | |
| StringBuilder | append(char c) | 將指定的字符附加到此 Appendable。 |
| StringBuilder | append(char[] str) | |
| StringBuilder | append(char[] str, int offset, int len) | |
| StringBuilder | append(double d) | |
| StringBuilder | append(float f) | |
| StringBuilder | append(int i) | |
| StringBuilder | append(long lng) | |
| StringBuilder | append(CharSequence s) | 將指定的字符序列附加到此 Appendable。 |
| StringBuilder | append(CharSequence s, int start, int end) | 將指定字符序列的子序列附加到此 Appendable。 |
| StringBuilder | append(Object obj) | |
| StringBuilder | append(String str) | |
| StringBuilder | append(StringBuffer sb) | 將指定的 StringBuffer 附加到此序列。 |
| StringBuilder | appendCodePoint(int codePoint) | |
| int | capacity() | 返回當前容量。 |
| char | charAt(int index) | 返回此序列中指定索引處的 char 值。 |
| int | codePointAt(int index) | 返回指定索引處的字符(Unicode 代碼點)。 |
| int | codePointBefore(int index) | 返回指定索引之前的字符(Unicode 代碼點)。 |
| int | codePointCount(int beginIndex, int endIndex) | 返回此序列的指定文本范圍內(nèi)的 Unicode 代碼點數(shù)。 |
| StringBuilder | delete(int start, int end) | |
| StringBuilder | deleteCharAt(int index) | |
| void | ensureCapacity(int minimumCapacity) | 確保容量至少等于指定的最小值。 |
| void | getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 字符從該序列復制到目標字符數(shù)組 dst。 |
| int | indexOf(String str) | |
| int | indexOf(String str, int fromIndex) | |
| StringBuilder | insert(int offset, boolean b) | |
| StringBuilder | insert(int offset, char c) | |
| StringBuilder | insert(int offset, char[] str) | |
| StringBuilder | insert(int index, char[] str, int offset, int len) | |
| StringBuilder | insert(int offset, double d) | |
| StringBuilder | insert(int offset, float f) | |
| StringBuilder | insert(int offset, int i) | |
| StringBuilder | insert(int offset, long l) | |
| StringBuilder | insert(int dstOffset, CharSequence s) | |
| StringBuilder | insert(int dstOffset, CharSequence s, int start, int end) | |
| StringBuilder | insert(int offset, Object obj) | |
| StringBuilder | insert(int offset, String str) | |
| int | lastIndexOf(String str) | |
| int | lastIndexOf(String str, int fromIndex) | |
| int | length() | 返回長度(字符數(shù))。 |
| int | offsetByCodePoints(int index, int codePointOffset) | 返回此序列中從給定索引偏移 codePointOffset 代碼點的索引。 |
| StringBuilder | replace(int start, int end, String str) | |
| StringBuilder | reverse() | |
| void | setCharAt(int index, char ch) | 指定索引處的字符設置為 ch。 |
| void | setLength(int newLength) | 設置字符序列的長度。 |
| CharSequence | subSequence(int start, int end) | 返回一個新的字符序列,它是該序列的子序列。 |
| 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 |
構(gòu)造函數(shù)詳細信息
StringBuilder
public StringBuilder()
構(gòu)造一個其中沒有字符且初始容量為 16 個字符的字符串構(gòu)建器。
StringBuilder
public StringBuilder(int capacity)
構(gòu)造一個字符串構(gòu)建器,其中沒有字符,初始容量由容量參數(shù)指定。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| capacity | 初始容量。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NegativeArraySizeException | 如果容量參數(shù)小于 0。 |
StringBuilder
public StringBuilder(String str)
構(gòu)造一個初始化為指定字符串內(nèi)容的字符串構(gòu)建器。 字符串生成器的初始容量是 16 加上字符串參數(shù)的長度。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| str | 緩沖區(qū)的初始內(nèi)容。 |
StringBuilder
public StringBuilder(CharSequence seq)
構(gòu)造一個字符串構(gòu)建器,該構(gòu)建器包含與指定 CharSequence 相同的字符。 字符串生成器的初始容量是 16 加上 CharSequence 參數(shù)的長度。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| seq | 要復制的序列。 |
方法詳情
append
public StringBuilder append(Object obj)
append
public StringBuilder append(String str)
append
public StringBuilder append(StringBuffer sb)
將指定的 StringBuffer 附加到此序列。
StringBuffer 參數(shù)的字符按順序附加到此序列,此序列的長度增加參數(shù)的長度。 如果 sb 為空,則將四個字符“null”附加到此序列中。
設 n 為該字符序列在執(zhí)行 append 方法之前的長度。 那么如果k小于n,則新字符序列中索引k處的字符等于舊字符序列中索引k處的字符; 否則,它等于參數(shù) sb 中索引 k-n 處的字符。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| sb | 要附加的 StringBuffer。 |
返回:
對該對象的引用。
append
public StringBuilder append(CharSequence s)
從接口復制的描述:可附加
將指定的字符序列附加到此 Appendable。
根據(jù)哪個類實現(xiàn)了字符序列 csq,可能不會附加整個序列。 例如,如果 csq 是一個 CharBuffer,那么要追加的子序列由緩沖區(qū)的位置和限制定義。
指定者:
在接口 Appendable 中追加
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 要追加的字符序列。 如果 csq 為 null,則將四個字符“null”附加到此 Appendable。 |
返回:
對本附錄的引用
append
public StringBuilder append(CharSequence s, int start, int end)
從接口復制的描述:可附加
將指定字符序列的子序列附加到此 Appendable。
當 csq 不為空時,以 out.append(csq, start, end) 形式調(diào)用此方法的行為與調(diào)用完全相同
out.append(csq.subSequence(start, end))指定者:
在接口 Appendable 中追加
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 從中追加子序列的字符序列。 如果 csq 為 null,則將附加字符,就好像 csq 包含四個字符“null”。 |
| start | 子序列中第一個字符的索引 |
| end | 子序列中最后一個字符之后的字符的索引 |
返回:
對本附錄的引用
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 start 或 end 為負數(shù),則 start 大于 end,或者 end 大于 csq.length() |
append
public StringBuilder append(char[] str)
append
public StringBuilder append(char[] str, int offset, int len)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
append
public StringBuilder append(boolean b)
append
public StringBuilder append(char c)
從接口復制的描述:可附加
將指定的字符附加到此 Appendable。
指定者:
在接口 Appendable 中追加
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 要附加的字符 |
返回:
對本附錄的引用
append
public StringBuilder append(int i)
append
public StringBuilder append(long lng)
append
public StringBuilder append(float f)
append
public StringBuilder append(double d)
appendCodePoint
public StringBuilder appendCodePoint(int codePoint)
delete
public StringBuilder delete(int start, int end)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
deleteCharAt
public StringBuilder deleteCharAt(int index)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
replace
public StringBuilder replace(int start, int end, String str)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int index, char[] str, int offset, int len)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, Object obj)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, String str)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, char[] str)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int dstOffset, CharSequence s)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
insert
public StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, boolean b)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, char c)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, int i)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, long l)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, float f)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
insert
public StringBuilder insert(int offset, double d)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException |
indexOf
public int indexOf(String str)
indexOf
public int indexOf(String str, int fromIndex)
lastIndexOf
public int lastIndexOf(String str)
lastIndexOf
public int lastIndexOf(String str, int fromIndex)
reverse
public StringBuilder reverse()
toString
public String toString()
從類復制的描述:對象
返回對象的字符串表示形式。 通常,toString 方法返回一個“以文本方式表示”該對象的字符串。 結(jié)果應該是一個簡潔但信息豐富的表示,易于人們閱讀。 建議所有子類重寫此方法。
Object 類的 toString 方法返回一個字符串,該字符串由對象作為其實例的類的名稱、at 符號字符“@”和對象哈希碼的無符號十六進制表示形式組成。 換句話說,此方法返回一個等于以下值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())指定者:
接口 CharSequence 中的 toString
覆蓋:
類 Object 中的 toString
返回:
對象的字符串表示形式。
trimToSize
public void trimToSize()
嘗試減少用于字符序列的存儲空間。 如果緩沖區(qū)大于保存其當前字符序列所需的大小,則可以調(diào)整其大小以提高空間效率。 調(diào)用此方法可能(但不是必須)影響后續(xù)調(diào)用 capacity() 方法返回的值。
codePointAt
public int codePointAt(int index)
返回指定索引處的字符(Unicode 代碼點)。 索引指的是 char 值(Unicode 代碼單元),范圍從 0 到 length() - 1。
如果給定索引處指定的 char 值在高代理范圍內(nèi),后續(xù)索引小于此序列的長度,并且后續(xù)索引處的 char 值在低代理范圍內(nèi),則補充代碼點 返回對應于這個代理對。 否則,返回給定索引處的 char 值。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | char 值的索引 |
返回:
索引處字符的代碼點值
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 index 參數(shù)為負數(shù)或不小于此序列的長度。 |
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
字符從該序列復制到目標字符數(shù)組 dst。 要復制的第一個字符位于索引 srcBegin; 要復制的最后一個字符位于索引 srcEnd-1 處。 要復制的字符總數(shù)為 srcEnd-srcBegin。 字符被復制到 dst 的子數(shù)組中,從索引 dstBegin 開始,到索引結(jié)束:
dstbegin + (srcEnd-srcBegin) - 1參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| srcBegin | 從這個偏移量開始復制。 |
| srcEnd | 在此偏移處停止復制。 |
| dst | 要將數(shù)據(jù)復制到的數(shù)組。 |
| dstBegin | 偏移到 dst。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果以下任何一項為真:srcBegin 為負 dstBegin 為負 srcBegin 參數(shù)大于 srcEnd 參數(shù)。srcEnd 大于 this.length().dstBegin+srcEnd-srcBegin 大于 dst.length |
length
public int length()
返回長度(字符數(shù))。
指定者:
接口 CharSequence 中的長度
返回:
此對象當前表示的字符序列的長度
setCharAt
public void setCharAt(int index, char ch)
指定索引處的字符設置為 ch。 這個序列被改變以表示一個與舊字符序列相同的新字符序列,除了它在位置索引處包含字符 ch。
index 參數(shù)必須大于或等于 0,并且小于此序列的長度。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 要修改的字符的索引。 |
| ch | 新character。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 index 為負數(shù)或大于或等于 length()。 |
subSequence
public CharSequence subSequence(int start, int end)
返回一個新的字符序列,它是該序列的子序列。
調(diào)用表單的這個方法
sb.subSequence(begin, end)行為方式與調(diào)用完全相同
sb.substring(begin, end)提供這個方法是為了這個類可以實現(xiàn) CharSequence 接口。
指定者:
接口 CharSequence 中的子序列
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| start | 起始索引,包括在內(nèi)。 |
| end | 結(jié)束索引,獨占。 |
返回:
指定的子序列。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 start 或 end 為負數(shù),如果 end 大于 length(),或者如果 start 大于 end |
substring
public String substring(int start)
返回一個新字符串,其中包含當前包含在此字符序列中的字符子序列。 子字符串從指定的索引開始并延伸到此序列的末尾。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| start | 起始索引,包括在內(nèi)。 |
返回:
新字符串。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException | 如果 start 小于零,或大于此對象的長度。 |
substring
public String substring(int start, int end)
返回一個新字符串,該字符串包含當前包含在此序列中的字符子序列。 子字符串從指定的 start 開始并延伸到索引 end - 1 處的字符。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| start | 起始索引,包括在內(nèi)。 |
| end | 結(jié)束索引,獨占。 |
返回:
新字符串。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| StringIndexOutOfBoundsException | 如果 start 或 end 為負數(shù)或大于 length(),或者 start 大于 end。 |
capacity
public int capacity()
返回當前容量。 容量是可用于新插入字符的存儲量,超出該容量將發(fā)生分配。
返回:
當前容量
setLength
public void setLength(int newLength)
設置字符序列的長度。 該序列更改為長度由參數(shù)指定的新字符序列。 對于每個小于newLength的非負索引k,如果k小于舊字符序列的長度,則新字符序列中索引k處的字符與舊序列中索引k處的字符相同; 否則,它是空字符'\u0000'。 換言之,如果 newLength 參數(shù)小于當前長度,則將長度更改為指定長度。
如果 newLength 參數(shù)大于或等于當前長度,則附加足夠的空字符 ('\u0000'),以便長度成為 newLength 參數(shù)。
newLength 參數(shù)必須大于或等于 0。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| newLength | 新長度 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 newLength 參數(shù)為負數(shù)。 |
ensureCapacity
public void ensureCapacity(int minimumCapacity)
確保容量至少等于指定的最小值。 如果當前容量小于參數(shù),則分配具有更大容量的新內(nèi)部數(shù)組。 新容量是以下兩者中的較大者:
- minimumCapacity 參數(shù)。
- 舊容量的兩倍,加上 2。
如果 minimumCapacity 參數(shù)為非正數(shù),則此方法不執(zhí)行任何操作并簡單地返回。 請注意,對該對象的后續(xù)操作可能會將實際容量減少到此處請求的容量以下。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| minimumCapacity | 所需的最小容量。 |
codePointBefore
public int codePointBefore(int index)
返回指定索引之前的字符(Unicode 代碼點)。 索引指的是 char 值(Unicode 代碼單元),范圍從 1 到 length()。
如果 (index - 1) 處的 char 值在低代理范圍內(nèi),(index - 2) 不為負,并且 (index - 2) 處的 char 值在高代理范圍內(nèi),則補充代碼點 返回代理對的值。 如果索引 - 1 處的 char 值是未配對的低代理或高代理,則返回代理值。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 應返回的代碼點之后的索引 |
返回:
給定索引之前的 Unicode 代碼點值。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 index 參數(shù)小于 1 或大于此序列的長度。 |
charAt
public char charAt(int index)
返回此序列中指定索引處的 char 值。 第一個 char 值在索引 0 處,下一個在索引 1 處,依此類推,就像在數(shù)組索引中一樣。
index 參數(shù)必須大于或等于 0,并且小于此序列的長度。
如果索引指定的 char 值是代理項,則返回代理項值。
指定者:
接口 CharSequence 中的 charAt
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 所需 char 值的索引。 |
返回:
指定索引處的 char 值。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 index 為負數(shù)或大于或等于 length()。 |
codePointCount
public int codePointCount(int beginIndex, int endIndex)
返回此序列的指定文本范圍內(nèi)的 Unicode 代碼點數(shù)。 文本范圍從指定的 beginIndex 開始并擴展到索引 endIndex - 1 處的字符。因此,文本范圍的長度(以字符為單位)為 endIndex-beginIndex。 此序列中的未配對代理各自計為一個代碼點。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| beginIndex | 文本范圍的第一個字符的索引。 |
| endIndex | 文本范圍的最后一個字符之后的索引。 |
返回:
指定文本范圍內(nèi)的 Unicode 代碼點數(shù)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 beginIndex 為負數(shù),或者 endIndex 大于此序列的長度,或者 beginIndex 大于 endIndex。 |
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset)
返回此序列中從給定索引偏移 codePointOffset 代碼點的索引。 由 index 和 codePointOffset 給出的文本范圍內(nèi)的未配對代理分別計為一個代碼點。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 要偏移的索引 |
| codePointOffset | 代碼點的偏移量 |
返回:
此序列中的索引
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 index 為負或大于此序列的長度,或者如果 codePointOffset 為正并且以 index 開頭的子序列的代碼點少于 codePointOffset,或者如果 codePointOffset 為負并且 index 之前的子序列小于 codePointOffset 代碼的絕對值 點。 |
本文題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS StringBuilder
網(wǎng)頁網(wǎng)址:http://fisionsoft.com.cn/article/djdpdhs.html


咨詢
建站咨詢
