- java.lang.Object
-
- java.lang.StringBuilder
-
- すべての実装されたインタフェース:
Serializable
,Appendable
,CharSequence
public final class StringBuilder extends Object implements Serializable, CharSequence
文字の可変シーケンスです。 このクラスは、StringBuffer
と互換性があるAPIを提供しますが、同期化は保証されません。 このクラスは、文字列バッファが単一のスレッド(一般的なケース)により使用されていた場合のStringBuffer
の簡単な代替として使用されるよう設計されています。 このクラスは、ほとんどの実装で高速に実行されるので、可能な場合は、StringBuffer
よりも優先して使用することをお薦めします。StringBuilder
の基本的なオペレーションには、append
メソッドおよびinsert
メソッドがあり、これらのメソッドはどんな種類のデータも受け取ることができるようにオーバーロードされています。 メソッドはそれぞれ与えられたデータを効率的に文字列に変換し、文字列中の文字を文字列ビルダーに追加または挿入します。append
メソッドは常に、ビルダーの末尾に与えられた文字を追加し、insert
メソッドは指定された位置に文字を追加します。たとえば、
z
を、現在「start
」を含む文字列ビルダー・オブジェクトと見なす場合、z.append("le")
は文字列ビルダーの内容が「startle
」になるように変更するのに対して、z.insert(4, "le")
というメソッド呼出しは文字列ビルダーの内容が「starlet
」になるように作用します。一般に、sbが
StringBuilder
のインスタンスを参照している場合、sb.append(x)
はsb.insert(sb.length(), x)
と同じ結果になります。各文字列ビルダーには容量があります。 文字列ビルダーに含まれる文字列の長さが容量を超過しないかぎり、新しい内部バッファを割り当てる必要はありません。 内部バッファがオーバーフローする場合、自動的に容量が増加します。
StringBuilder
のインスタンスは、複数のスレッドで使用するには安全ではありません。 このような同期が必要な場合は、StringBuffer
を使用することをお薦めします。ほかで指定がない場合、
null
引数をコンストラクタまたはこのクラスのメソッドへ渡すと、NullPointerException
がスローされます。- 導入されたバージョン:
- 1.5
- 関連項目:
StringBuffer
,String
, 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 StringBuilder()
文字を持たず、初期容量が16文字である文字列ビルダーを構築します。StringBuilder(int capacity)
文字を持たず、capacity
引数によって指定された初期容量の文字列ビルダーを構築します。StringBuilder(CharSequence seq)
指定されたCharSequence
引数と同じ文字を含む文字列ビルダーを構築します。StringBuilder(String str)
指定された文字列の内容に初期化された文字列ビルダーを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 StringBuilder
append(boolean b)
boolean
引数の文字列表現をシーケンスに追加します。StringBuilder
append(char c)
char
引数の文字列表現をこのシーケンスに追加します。StringBuilder
append(char[] str)
char
配列引数の文字列表現をこのシーケンスに追加します。StringBuilder
append(char[] str, int offset, int len)
char
配列引数の部分配列の文字列表現を、このシーケンスに追加します。StringBuilder
append(double d)
double
引数の文字列表現をこのシーケンスに追加します。StringBuilder
append(float f)
float
引数の文字列表現をこのシーケンスに追加します。StringBuilder
append(int i)
int
引数の文字列表現をこのシーケンスに追加します。StringBuilder
append(long lng)
long
引数の文字列表現をこのシーケンスに追加します。StringBuilder
append(CharSequence s)
このAppendable
に指定された文字シーケンスを追加します。StringBuilder
append(CharSequence s, int start, int end)
指定されたCharSequence
のサブシーケンスをこのシーケンスに追加します。StringBuilder
append(Object obj)
Object
引数の文字列表現を追加します。StringBuilder
append(String str)
指定された文字列をこの文字シーケンスに追加します。StringBuilder
append(StringBuffer sb)
指定されたStringBuffer
をこのシーケンスに追加します。StringBuilder
appendCodePoint(int codePoint)
codePoint
引数の文字列表現をこのシーケンスに追加します。int
capacity()
現在の容量を返します。char
charAt(int index)
このシーケンス内の指定されたインデックスのchar
値を返します。IntStream
chars()
このシーケンスのchar
値をゼロ拡張したint
を含むストリームを返します。int
codePointAt(int index)
指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。int
codePointBefore(int index)
指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。int
codePointCount(int beginIndex, int endIndex)
このシーケンスの指定されたテキスト範囲に含まれるUnicodeコード・ポイントの数を返します。IntStream
codePoints()
このシーケンスからコード・ポイント値のストリームを返します。StringBuilder
delete(int start, int end)
このシーケンスの部分文字列内の文字を削除します。StringBuilder
deleteCharAt(int index)
このシーケンス内の指定された位置にあるchar
を削除します。void
ensureCapacity(int minimumCapacity)
容量が必ず指定された最小値以上になるようにします。void
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
このシーケンスからコピー先の文字配列dst
に文字がコピーされます。int
indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。int
indexOf(String str, int fromIndex)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。StringBuilder
insert(int offset, boolean b)
boolean
引数の文字列表現をこのシーケンスに挿入します。StringBuilder
insert(int offset, char c)
char
引数の文字列表現をこのシーケンスに挿入します。StringBuilder
insert(int offset, char[] str)
char
配列引数の文字列表現をこのシーケンスに挿入します。StringBuilder
insert(int index, char[] str, int offset, int len)
str
配列引数の部分配列の文字列表現を、このシーケンスに挿入します。StringBuilder
insert(int offset, double d)
double
引数の文字列表現をこのシーケンスに挿入します。StringBuilder
insert(int offset, float f)
float
引数の文字列表現をこのシーケンスに挿入します。StringBuilder
insert(int offset, int i)
2番目のint
引数の文字列表現をこのシーケンスに挿入します。StringBuilder
insert(int offset, long l)
long
引数の文字列表現をこのシーケンスに挿入します。StringBuilder
insert(int dstOffset, CharSequence s)
指定されたCharSequence
をこのシーケンスに挿入します。StringBuilder
insert(int dstOffset, CharSequence s, int start, int end)
指定されたCharSequence
のサブシーケンスをこのシーケンスに挿入します。StringBuilder
insert(int offset, Object obj)
Object
引数の文字列表現をこの文字シーケンスに挿入します。StringBuilder
insert(int offset, String str)
文字列をこの文字シーケンスに挿入します。int
lastIndexOf(String str)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。int
lastIndexOf(String str, int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。int
length()
長さ(文字数)を返します。int
offsetByCodePoints(int index, int codePointOffset)
このシーケンス内で、指定されたindex
からcodePointOffset
コード・ポイント分だけオフセットされた位置のインデックスを返します。StringBuilder
replace(int start, int end, String str)
このシーケンスの部分文字列内の文字を、指定されたString
内の文字で置き換えます。StringBuilder
reverse()
この文字シーケンスを、シーケンスの順序を逆にしたもので置き換えます。void
setCharAt(int index, char ch)
指定されたインデックスの文字がch
に設定されます。void
setLength(int newLength)
文字シーケンスの長さを設定します。CharSequence
subSequence(int start, int end)
このシーケンスのサブシーケンスである新規文字シーケンスを返します。String
substring(int start)
この文字シーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。String
substring(int start, int end)
このシーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。String
toString()
このシーケンス内のデータを表す文字列を返します。void
trimToSize()
この文字シーケンスで使用されているストレージの低減を試みます。-
インタフェース java.lang.CharSequenceから継承されたメソッド
charAt, chars, codePoints, length, subSequence
-
-
-
-
コンストラクタの詳細
-
StringBuilder
public StringBuilder()
文字を持たず、初期容量が16文字である文字列ビルダーを構築します。
-
StringBuilder
public StringBuilder(int capacity)
文字を持たず、capacity
引数によって指定された初期容量の文字列ビルダーを構築します。- パラメータ:
capacity
- 初期容量。- 例外:
NegativeArraySizeException
-capacity
引数が0
未満の場合。
-
StringBuilder
public StringBuilder(String str)
指定された文字列の内容に初期化された文字列ビルダーを構築します。 文字列ビルダーの初期容量は、16
に文字列引数の長さを加えたものです。- パラメータ:
str
- バッファの初期内容。
-
StringBuilder
public StringBuilder(CharSequence seq)
指定されたCharSequence
引数と同じ文字を含む文字列ビルダーを構築します。 文字列ビルダーの初期容量は、16
にCharSequence
引数の長さを加えたものです。- パラメータ:
seq
- コピー対象のシーケンス。
-
-
メソッドの詳細
-
append
public StringBuilder append(Object obj)
Object
引数の文字列表現を追加します。最終的には、
String.valueOf(Object)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
obj
-Object
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(String str)
指定された文字列をこの文字シーケンスに追加します。String
引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。str
がnull
の場合は、"null"
という4文字が追加されます。append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数str
内のインデックスk-nの文字と等しくなります。- パラメータ:
str
- 文字列。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(StringBuffer sb)
指定されたStringBuffer
をこのシーケンスに追加します。StringBuffer
引数の文字がこのシーケンスに順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。sb
がnull
の場合は、このシーケンスに"null"
という4文字が追加されます。append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数sb
内のインデックスk-nの文字と等しくなります。- パラメータ:
sb
- 追加するStringBuffer
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(CharSequence s)
インタフェースからコピーされた説明:Appendable
このAppendable
に指定された文字シーケンスを追加します。文字シーケンス
csq
を実装するクラスによっては、文字シーケンス全体が追加されない可能性があります。 たとえば、csq
がCharBuffer
である場合、追加される文字サブシーケンスはバッファの位置または制限によって定義されます。- 定義:
append
、インタフェース:Appendable
- パラメータ:
s
- 追加する文字シーケンス。csq
がnull
の場合は、このAppendableにnull
という4文字が追加される。- 戻り値:
- この
Appendable
への参照
-
append
public StringBuilder append(CharSequence s, int start, int end)
指定されたCharSequence
のサブシーケンスをこのシーケンスに追加します。引数
s
のインデックスstart
からインデックスend
-1までの文字が、このシーケンスの内容に順番に追加されます。 このシーケンスの長さはend - start
の値だけ増えます。append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。 このとき、この文字シーケンス内のインデックスkの文字は、kがnより小さい場合はこのシーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数s
内のインデックスk+start-nの文字と等しくなります。s
がnull
の場合、このメソッドはsパラメータが"null"
という4文字を含むシーケンスであるかのように、文字を追加します。- 定義:
append
、インタフェース:Appendable
- パラメータ:
s
- 追加されるシーケンス。start
- 追加される部分シーケンスの開始インデックス。end
- 追加される部分シーケンスの終了インデックス。- 戻り値:
- このオブジェクトへの参照。
- 例外:
IndexOutOfBoundsException
-start
が負の値の場合、start
がend
より大きい場合、またはend
がs.length()
より大きい場合
-
append
public StringBuilder append(char[] str)
char
配列引数の文字列表現をこのシーケンスに追加します。配列引数の文字がこのシーケンスの内容に順番に追加されます。 このシーケンスの長さは、引数の長さの分だけ増えます。
最終的には、
String.valueOf(char[])
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
str
- 追加される文字。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(char[] str, int offset, int len)
char
配列引数の部分配列の文字列表現を、このシーケンスに追加します。char
配列str
のインデックスoffset
以降の文字が、このシーケンスの内容に順番に追加されます。 このシーケンスの長さはlen
の値だけ増えます。最終的には、
String.valueOf(char[],int,int)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
str
- 追加される文字。offset
- 追加される最初のchar
のインデックス。len
- 追加されるchar
の数。- 戻り値:
- このオブジェクトへの参照。
- 例外:
IndexOutOfBoundsException
-offset < 0
またはlen < 0
またはoffset+len> str.length
の場合
-
append
public StringBuilder append(boolean b)
boolean
引数の文字列表現をシーケンスに追加します。最終的には、
String.valueOf(boolean)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
b
-boolean
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(char c)
char
引数の文字列表現をこのシーケンスに追加します。引数がこのシーケンスの内容に追加されます。 このシーケンスの長さは
1
だけ増えます。最終的には、
String.valueOf(char)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- 定義:
append
、インタフェース:Appendable
- パラメータ:
c
-char
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(int i)
int
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(int)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
i
-int
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(long lng)
long
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(long)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
lng
-long
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(float f)
float
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(float)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
f
-float
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuilder append(double d)
double
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(double)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
d
-double
。- 戻り値:
- このオブジェクトへの参照。
-
appendCodePoint
public StringBuilder appendCodePoint(int codePoint)
codePoint
引数の文字列表現をこのシーケンスに追加します。引数がこのシーケンスの内容に追加されます。 このシーケンスの長さは
Character.charCount(codePoint)
だけ増えます。最終的には、
Character.toChars(int)
メソッドによって引数がchar
配列に変換されてから、その配列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
codePoint
- Unicodeコード・ポイント- 戻り値:
- このオブジェクトへの参照。
- 導入されたバージョン:
- 1.5
-
delete
public StringBuilder delete(int start, int end)
このシーケンスの部分文字列内の文字を削除します。 部分文字列は、指定されたstart
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。start
がend
に等しい場合、変更は一切行われません。- パラメータ:
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。- 戻り値:
- このオブジェクト。
- 例外:
StringIndexOutOfBoundsException
-start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。
-
deleteCharAt
public StringBuilder deleteCharAt(int index)
このシーケンス内の指定された位置にあるchar
を削除します。 このシーケンスは1char
分だけ短くなります。注: 指定されたインデックスの文字が補助文字であっても、このメソッドはその文字全体を削除しません。 補助文字の処理を正しく行う必要がある場合は、
Character.charCount(thisSequence.codePointAt(index))
(thisSequence
はこのシーケンス)を呼び出して、削除されるchar
の数を確認します。- パラメータ:
index
- 削除されるchar
のインデックス- 戻り値:
- このオブジェクト。
- 例外:
StringIndexOutOfBoundsException
-index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。
-
replace
public StringBuilder replace(int start, int end, String str)
このシーケンスの部分文字列内の文字を、指定されたString
内の文字で置き換えます。 部分文字列は、指定されたstart
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。 まず、部分文字列内の文字が削除され、続いて、指定されたString
がstart
の位置に挿入されます。 (必要であれば、指定されたStringに合わせてこのシーケンスの長さが調整されます。)- パラメータ:
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。str
- 以前の内容を置換するString。- 戻り値:
- このオブジェクト。
- 例外:
StringIndexOutOfBoundsException
-start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。
-
insert
public StringBuilder insert(int index, char[] str, int offset, int len)
str
配列引数の部分配列の文字列表現を、このシーケンスに挿入します。 部分配列は、指定されたoffset
からlen
char
個分になります。 このシーケンス内のindex
で示される位置に部分配列の文字が挿入されます。 このシーケンスの長さは、len
個のchar
分だけ増えます。- パラメータ:
index
- 部分配列を挿入する位置。str
-char
配列。offset
- 挿入される部分配列の最初のchar
のインデックス。len
- 挿入される部分配列のchar
数。- 戻り値:
- このオブジェクト
- 例外:
StringIndexOutOfBoundsException
-index
が負の値であるかlength()
より大きい場合、offset
またはlen
が負の値の場合、あるいは(offset+len)
がstr.length
より大きい場合。
-
insert
public StringBuilder insert(int offset, Object obj)
Object
引数の文字列表現をこの文字シーケンスに挿入します。最終的には、
String.valueOf(Object)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。obj
-Object
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int offset, String str)
文字列をこの文字シーケンスに挿入します。このシーケンスの指定されたオフセット位置に
String
引数の文字が順番に挿入され、その位置にもともとあった文字はすべて上方に移動され、このシーケンスの長さが引数の長さ分だけ増加します。str
がnull
の場合は、"null"
という4文字がこのシーケンスに挿入されます。新しい文字列のインデックスkの位置にある文字は、次の文字に等しくなります。
- kが
offset
より小さい場合は、以前の文字シーケンス内のインデックスkの位置にある文字 - kが
offset
より小さくはないが、offset+str.length()
より小さい場合は、引数str
内のインデックスk-offset
の位置にある文字 - kが
offset+str.length()
より小さくない場合は、以前の文字シーケンス内のインデックスk-str.length()
の位置にある文字
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。str
- 文字列。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
- kが
-
insert
public StringBuilder insert(int offset, char[] str)
char
配列引数の文字列表現をこのシーケンスに挿入します。このシーケンスの内容の
offset
で示された位置に、配列引数の文字が挿入されます。 このシーケンスの長さは、引数の長さの分だけ増えます。最終的には、
String.valueOf(char[])
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。str
- 文字配列。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int dstOffset, CharSequence s)
指定されたCharSequence
をこのシーケンスに挿入します。このシーケンスの指定されたオフセット位置に
CharSequence
引数の文字が順番に挿入され、その位置にもともとあった文字がすべて上方に移動され、このシーケンスの長さが引数sの長さ分だけ増加します。このメソッドの結果は、このオブジェクトの
insert
(dstOffset, s, 0, s.length())メソッドの呼び出しとまったく同じです。s
がnull
の場合は、"null"
という4文字がこのシーケンスに挿入されます。- パラメータ:
dstOffset
- オフセット。s
- 挿入されるシーケンス- 戻り値:
- このオブジェクトへの参照。
- 例外:
IndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
指定されたCharSequence
のサブシーケンスをこのシーケンスに挿入します。start
とend
で指定される引数s
の部分シーケンスが、このシーケンス内の指定された挿入先offsetに順番に挿入され、その位置にもともとあった文字はすべて上方に移動されます。 このシーケンスの長さはend - start
だけ増えます。このシーケンス内のインデックスkの位置にある文字は、次に等しくなります。
- kが
dstOffset
より小さい場合は、このシーケンス内のインデックスkの位置にある文字 - kが
dstOffset
に等しいかそれより大きく、dstOffset+end-start
より小さい場合は、引数s
内のインデックスk+start-dstOffset
の位置にある文字 - kが
dstOffset+end-start
に等しいかそれより大きい場合は、このシーケンス内のインデックスk-(end-start)
の位置にある文字
dstOffset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。start引数は負でない値でなければならず、
end
より大きくてはいけません。end引数は、
start
に等しいかそれより大きく、sの長さに等しいかそれより小さくなければなりません。s
がnull
の場合、このメソッドはsパラメータが"null"
という4文字を含むシーケンスであるかのように、文字を挿入します。- パラメータ:
dstOffset
- このシーケンス内のオフセット。s
- 挿入されるシーケンス。start
- 挿入される部分シーケンスの開始インデックス。end
- 挿入される部分シーケンスの終了インデックス。- 戻り値:
- このオブジェクトへの参照。
- 例外:
IndexOutOfBoundsException
-dstOffset
が負の値であるかthis.length()
より大きい場合、start
またはend
が負の値の場合、start
がend
より大きい場合、あるいはend
がs.length()
より大きい場合
- kが
-
insert
public StringBuilder insert(int offset, boolean b)
boolean
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(boolean)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。b
-boolean
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int offset, char c)
char
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(char)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたインデックス位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。c
-char
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
IndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int offset, int i)
2番目のint
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(int)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。i
-int
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int offset, long l)
long
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(long)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。l
-long
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int offset, float f)
float
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(float)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。f
-float
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuilder insert(int offset, double d)
double
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(double)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。d
-double
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
indexOf
public int indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。返されるインデックスは、次の式がtrueとなるような最小値
k
になります。
このようなthis.toString().startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。- 戻り値:
- 指定された部分文字列が最初に出現する位置のインデックス。そのような出現箇所がない場合は
-1
。
-
indexOf
public int indexOf(String str, int fromIndex)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。返されるインデックスは、次の式がtrueとなるような最小値
k
になります。
このようなk >= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。fromIndex
-検索開始位置のインデックス。- 戻り値:
- 指定されたインデックス以降で、指定された部分文字列が最初に出現する位置のインデックス。そのような出現箇所がない場合は
-1
。
-
lastIndexOf
public int lastIndexOf(String str)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。 空の文字列が最後に出現する位置は、this.length()
と見なされます。返されるインデックスは、次の式がtrueとなるような最大値
k
になります。
このようなthis.toString().startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。- 戻り値:
- 指定された部分文字列が最後に出現する位置のインデックス。そのような出現箇所がない場合は
-1
。
-
lastIndexOf
public int lastIndexOf(String str, int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。返されるインデックスは、次の式がtrueとなるような最大値
k
になります。
このようなk <= Math.min(fromIndex, this.length()) && this.toString().startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。fromIndex
- 検索開始位置のインデックス。- 戻り値:
- 指定された部分文字列が最後に出現する位置のインデックス(指定されたインデックスから逆方向に検索を行う)。そのような出現箇所がない場合は
-1
。
-
reverse
public StringBuilder reverse()
この文字シーケンスを、シーケンスの順序を逆にしたもので置き換えます。 シーケンスにサロゲート・ペアが含まれている場合、それらは反転操作時に単一の文字として扱われます。 したがって、サロゲートの上位-下位の順番が反転することは決してありません。reverse
メソッドの実行直前に、この文字シーケンスの文字長(char
値での長さではない)がnであったとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、以前の文字シーケンス内のインデックスn-k-1の文字と等しくなります。反転操作を行うと、操作前にはペアになっていなかった下位サロゲートと上位サロゲートからサロゲート・ペアが生成される可能性があります。 たとえば、「\uDC00\uD800」を反転すると「\uD800\uDC00」が生成されますが、これは有効なサロゲート・ペアです。
- 戻り値:
- このオブジェクトへの参照。
-
toString
public String toString()
このシーケンス内のデータを表す文字列を返します。 新しいString
オブジェクトが割り当てられ、現在このオブジェクトで表されている文字シーケンスを含むように初期化されます。 その後、このString
が返されます。 その後このシーケンスが変更されても、String
の内容には影響ありません。- 定義:
toString
、インタフェース:CharSequence
- 戻り値:
- この文字シーケンスの文字列表現。
-
length
public int length()
長さ(文字数)を返します。- 定義:
length
、インタフェース:CharSequence
- 戻り値:
- このオブジェクトによって現在表される文字シーケンスの長さ
-
capacity
public int capacity()
現在の容量を返します。 容量とは、新しく挿入される文字で使用可能なストレージの量のことであり、それを超えると割当てが発生します。- 戻り値:
- 現在の容量
-
ensureCapacity
public void ensureCapacity(int minimumCapacity)
容量が必ず指定された最小値以上になるようにします。 現在の容量が引数より小さい場合、より多くの容量を持つ新しい内部配列が割り当てられます。 新しい容量は、次の大きいほうになります。minimumCapacity
引数。- 以前の容量の2倍の量に
2
を加えた値。
minimumCapacity
引数が正の値でない場合、このメソッドは何も行わずに復帰します。 このオブジェクトに対する後続の操作によって実際の容量がここで要求された量を下回る可能性があることに注意してください。- パラメータ:
minimumCapacity
保証したい最小容量。
-
trimToSize
public void trimToSize()
この文字シーケンスで使用されているストレージの低減を試みます。 バッファが現在の文字シーケンスを保持するのに必要なサイズよりも大きい場合、そのサイズを変更して容量効率を高めることができます。 このメソッドを呼び出すと、あとでcapacity()
メソッドを呼び出した際に返される値に影響する可能性がありますが、必ずそうとはかぎりません。
-
setLength
public void setLength(int newLength)
文字シーケンスの長さを設定します。 このシーケンスが、引数で指定された長さの新しい文字シーケンスに変更されます。newLength
未満の負以外のすべてのインデックスkについて、kが古い文字シーケンスの長さ未満である場合、新しい文字シーケンス内のインデックスkの文字は、古いシーケンス内のインデックスkの文字と同じになります。それ以外の場合は、null文字'\u0000'
になります。 つまり、newLength
引数が現在の長さ未満である場合、その長さが指定された長さに変更されます。newLength
引数が現在の長さと等しいかそれより大きい場合は、長さがnewLength
引数になるように、十分な数のnull文字('\u0000'
)が追加されます。newLength
引数は0
以上でなければなりません。- パラメータ:
newLength
- 新しい長さ- 例外:
IndexOutOfBoundsException
-newLength
引数が負の場合。
-
charAt
public char charAt(int index)
このシーケンス内の指定されたインデックスのchar
値を返します。 配列のインデックスと同様に、最初のchar
値の位置がインデックス0
、次の文字の位置が1
、といった具合になります。index引数は、
0
以上で、このシーケンスの長さより小さくなければなりません。インデックスで指定された
char
値がサロゲートの場合、サロゲート値が返されます。- 定義:
charAt
、インタフェース:CharSequence
- パラメータ:
index
- 目的のchar
値のインデックス。- 戻り値:
- 指定されたインデックスの
char
値。 - 例外:
IndexOutOfBoundsException
-index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。
-
codePointAt
public int codePointAt(int index)
指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。 インデックスは、char
値(Unicodeコード単位)を指し、0
からlength()
- 1
までの範囲である。指定されたインデックスで指定された
char
値が上位サロゲート範囲にあり、それに続くインデックスがこのシーケンスの長さ未満で、以降のインデックスのchar
値が下位サロゲート範囲にある場合、このサロゲート・ペアに対応する補助コード・ポイントが返されます。 それ以外の場合は、指定されたインデックスにあるchar
値が返されます。- パラメータ:
index
-char
値へのインデックス- 戻り値:
- 指定された
index
にある文字のコード・ポイント値 - 例外:
IndexOutOfBoundsException
-index
引数が負の値、またはこのシーケンスの長さと同じかこれより大きい値の場合。
-
codePointBefore
public int codePointBefore(int index)
指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。 インデックスはchar
値(Unicodeコード単位)を参照し、その範囲は1
-length()
になります。(index - 1)
のchar
値が下位サロゲート範囲に含まれており、(index - 2)
が負でなく、かつ(index - 2)
のchar
値が上位サロゲートに含まれている場合、そのサロゲート・ペアの補助コード・ポイント値が返されます。index - 1
のchar
値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。- パラメータ:
index
- 返すべきコード・ポイントの直後のインデックス- 戻り値:
- 指定されたインデックスの前にあるUnicodeコード・ポイント値。
- 例外:
IndexOutOfBoundsException
-index
引数が1未満であるか、またはこのシーケンスの長さより大きい値の場合。
-
codePointCount
public int codePointCount(int beginIndex, int endIndex)
このシーケンスの指定されたテキスト範囲に含まれるUnicodeコード・ポイントの数を返します。 テキスト範囲は、指定されたbeginIndex
からインデックスendIndex - 1
の位置のchar
までです。 したがって、テキスト範囲の長さ(char
数)は、endIndex-beginIndex
になります。 このシーケンス内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。- パラメータ:
beginIndex
- テキスト範囲内の最初のchar
へのインデックス。endIndex
- テキスト範囲内の最後のchar
の直後のインデックス。- 戻り値:
- 指定されたテキスト範囲内のUnicodeコード・ポイントの数
- 例外:
IndexOutOfBoundsException
-beginIndex
が負であるか、endIndex
がこのシーケンスの長さより大きいか、あるいはbeginIndex
がendIndex
より大きい場合。
-
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset)
このシーケンス内で、指定されたindex
からcodePointOffset
コード・ポイント分だけオフセットされた位置のインデックスを返します。index
とcodePointOffset
で指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。- パラメータ:
index
- オフセットされるインデックスcodePointOffset
- オフセット(コード・ポイント数)- 戻り値:
- このシーケンス内でのインデックス
- 例外:
IndexOutOfBoundsException
-index
が負の値またはこのシーケンスの長さよりも大きい場合、codePointOffset
が正の値でありindex
で始まるサブシーケンスの持つコード・ポイント数がcodePointOffset
コード・ポイント数よりも少ない場合、あるいはcodePointOffset
が負の値でindex
の前のサブシーケンスの持つ値がcodePointOffset
コード・ポイントの絶対値よりも小さい場合。
-
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
このシーケンスからコピー先の文字配列dst
に文字がコピーされます。 コピーする最初の文字はインデックスsrcBegin
、コピーする最後の文字はインデックスsrcEnd-1
になります。 コピーする文字の合計数はsrcEnd-srcBegin
です。 文字はdst
の部分配列にコピーされます。始点のインデックスはdstBegin
で、終点のインデックスは次のようになります。dstbegin + (srcEnd-srcBegin) - 1
- パラメータ:
srcBegin
- このオフセットからコピーを開始する。srcEnd
- このオフセットでコピーを停止する。dst
- データのコピー先の配列。dstBegin
-dst
へのオフセット。- 例外:
IndexOutOfBoundsException
- 次のどれかに当てはまる場合。srcBegin
が負であるdstBegin
が負であるsrcBegin
引数がsrcEnd
引数より大きいsrcEnd
がthis.length()
より大きいdstBegin+srcEnd-srcBegin
が次より大きい:dst.length
-
setCharAt
public void setCharAt(int index, char ch)
指定されたインデックスの文字がch
に設定されます。 このシーケンスは、位置index
の文字がch
である点を除き、以前の文字シーケンスと同一であるような、新しい文字シーケンスを表現するように変更されます。index引数は、
0
以上で、このシーケンスの長さより小さくなければなりません。- パラメータ:
index
- 変更対象の文字のインデックス。ch
- 新しい文字。- 例外:
IndexOutOfBoundsException
-index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。
-
substring
public String substring(int start)
この文字シーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。 部分文字列は指定されたインデックスで始まり、このシーケンスの末尾までになります。- パラメータ:
start
- 開始インデックス(この値を含む)。- 戻り値:
- 新しい文字列。
- 例外:
StringIndexOutOfBoundsException
-start
が0より小さい場合、あるいはこのオブジェクトの長さより大きい場合。
-
subSequence
public CharSequence subSequence(int start, int end)
このシーケンスのサブシーケンスである新規文字シーケンスを返します。次のフォームのメソッド呼出しは、
次の呼び出しと正確に同じ動作になります。sb.subSequence(begin, end)
このメソッドが提供されているのは、このクラスがsb.substring(begin, end)
CharSequence
インタフェースを実装できるようにするためです。- 定義:
subSequence
、インタフェース:CharSequence
- パラメータ:
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。- 戻り値:
- 指定されたサブシーケンス。
- 例外:
IndexOutOfBoundsException
-start
またはend
が負の値の場合、end
がlength()
よりも大きい場合、あるいはstart
がend
よりも大きい場合
-
substring
public String substring(int start, int end)
このシーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。 部分文字列は、指定されたstart
から始まり、インデックスend - 1
にある文字までです。- パラメータ:
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。- 戻り値:
- 新しい文字列。
- 例外:
StringIndexOutOfBoundsException
-start
またはend
が負の値であるかlength()
より大きい場合、またはstart
がend
より大きい場合。
-
chars
public IntStream chars()
このシーケンスのchar
値をゼロ拡張したint
を含むストリームを返します。 サロゲート・コード・ポイントにマップするすべてのcharは、解釈されずに渡されます。ストリームは、ターミナル・ストリーム操作が(具体的には、可変シーケンスの場合、ストリームのスプライテータはlate-binding)で始まるときにこのシーケンスにバインドされます。 その操作中にシーケンスが変更された場合、結果は未定義です。
- 定義:
chars
、インタフェース:CharSequence
- 戻り値:
- このシーケンスのchar値のIntStream
- 導入されたバージョン:
- 9
-
codePoints
public IntStream codePoints()
このシーケンスからコード・ポイント値のストリームを返します。 そのシーケンスで検出されるサロゲート・ペアがすべて、Character.toCodePointを使用した場合のように結合され、結果がストリームに渡されます。 他のすべてのコード(通常のBMP文字、ペアになっていないサロゲート、未定義のコード単位など)はint
値にゼロ拡張されたあと、ストリームに渡されます。ストリームは、ターミナル・ストリーム操作が(具体的には、可変シーケンスの場合、ストリームのスプライテータはlate-binding)で始まるときにこのシーケンスにバインドされます。 その操作中にシーケンスが変更された場合、結果は未定義です。
- 定義:
- インタフェース
CharSequence
内のcodePoints
- 戻り値:
- このシーケンスからのUnicodeコード・ポイントのIntStream
- 導入されたバージョン:
- 9
-
-