- すべての実装されたインタフェース:
Serializable
,Appendable
,CharSequence
,Comparable<StringBuffer>
String
に似ていますが、変更できる点が異なります。 文字列バッファには常に文字列が格納されていますが、文字列の長さと内容は特定のメソッドの呼出しにより変更できます。
文字列バッファは複数のスレッドによって安全に使用することができます。 メソッドは必要に応じて同期化され、特定のインスタンスでのすべてのオペレーションが、関連のある個々のスレッドによって行われるメソッドの呼出しの順序と一致する連続した順序で発生するように動作します。
StringBuffer
の基本的なオペレーションには、append
メソッドおよびinsert
メソッドがあり、これらのメソッドはどんな種類のデータも受け取ることができるようにオーバーロードされています。 メソッドはそれぞれ与えられたデータを効率的に文字列に変換し、文字列中の文字を文字列バッファに追加または挿入します。 append
メソッドは常に、バッファの末尾に与えられた文字を追加し、insert
メソッドは指定された位置に文字を追加します。
たとえば、z
が、現在"start"
を含む文字列バッファ・オブジェクトを参照している場合、メソッド呼出しz.append("le")
はその文字列バッファの内容が"startle"
になるように変更するのに対し、z.insert(4, "le")
はその文字列バッファの内容が"starlet"
になるように変更します。
一般に、sbがStringBuffer
のインスタンスを参照している場合、sb.append(x)
はsb.insert(sb.length(), x)
と同じ結果になります。
オペレーションにソース・シーケンスが関連する場合(ソース・シーケンスからの追加や挿入など)、このクラスは、そのオペレーションを実行している文字列バッファとだけ同期し、ソースとは同期しません。 コンストラクタあるいはappend
またはinsert
オペレーションにスレッド間で共有されるソース・シーケンスが渡される場合、StringBuffer
は複数のスレッドから並行して使用できるように作られていますが、呼出し元コードではオペレーションの処理中にそのソース・シーケンスの一貫した不変のビューが保持されるようにする必要があることに注意してください。 これは、呼出し側でオペレーションの呼出し中にロックを保持するか、不変のソース・シーケンスを使用するか、またはスレッド間でソース・シーケンスを共有しないことで達成できる可能性があります。
各文字列バッファには容量があります。 文字列バッファに含まれる文字列の長さが容量を超過しないかぎり、新しい内部バッファ配列を割り当てる必要はありません。 内部バッファがオーバーフローする場合、自動的に容量が増加します。
ほかで指定がない場合、null
引数をコンストラクタまたはこのクラスのメソッドへ渡すと、NullPointerException
がスローされます。
JDK 5以降、このクラスは単一のスレッドStringBuilder
により使用されるよう設計された等価のクラスで補足されています。 StringBuilder
クラスは、このクラスと同じ処理をすべてサポートしながらも高速であり、同期を実行しないので、通常はこのクラスに優先して使用される必要があります。
- APIのノート:
StringBuffer
はComparable
を実装しますが、equals
はオーバーライドしません。 したがって、StringBuffer
の自然な順序はequalsと一致しません。StringBuffer
オブジェクトがSortedMap
のキーまたはSortedSet
の要素として使用される場合は注意が必要です。 詳細については、Comparable
、SortedMap
,またはSortedSet
を参照してください。- 導入されたバージョン:
- 1.0
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明文字を持たず、初期容量が16文字である文字列バッファを構築します。StringBuffer
(int capacity) 文字を持たず、指定された初期容量を持つ文字列バッファを構築します。StringBuffer
(CharSequence seq) 指定されたCharSequence
引数と同じ文字を含む文字列バッファを構築します。StringBuffer
(String str) 指定された文字列の内容に初期化された文字列バッファを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明append
(boolean b) boolean
引数の文字列表現をシーケンスに追加します。append
(char c) char
引数の文字列表現をこのシーケンスに追加します。append
(char[] str) char
配列引数の文字列表現をこのシーケンスに追加します。append
(char[] str, int offset, int len) char
配列引数の部分配列の文字列表現を、このシーケンスに追加します。append
(double d) double
引数の文字列表現をこのシーケンスに追加します。append
(float f) float
引数の文字列表現をこのシーケンスに追加します。append
(int i) int
引数の文字列表現をこのシーケンスに追加します。append
(long lng) long
引数の文字列表現をこのシーケンスに追加します。指定されたCharSequence
をこのシーケンスに追加します。append
(CharSequence s, int start, int end) 指定されたCharSequence
のサブシーケンスをこのシーケンスに追加します。Object
引数の文字列表現を追加します。指定された文字列をこの文字シーケンスに追加します。append
(StringBuffer sb) 指定されたStringBuffer
をこのシーケンスに追加します。appendCodePoint
(int codePoint) codePoint
引数の文字列表現をこのシーケンスに追加します。int
capacity()
現在の容量を返します。char
charAt
(int index) このシーケンス内の指定されたインデックスのchar
値を返します。chars()
このシーケンスのchar
値をゼロ拡張したint
を含むストリームを返します。int
codePointAt
(int index) 指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。int
codePointBefore
(int index) 指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。int
codePointCount
(int beginIndex, int endIndex) このシーケンスの指定されたテキスト範囲に含まれるUnicodeコード・ポイントの数を返します。このシーケンスからコード・ポイント値のストリームを返します。int
compareTo
(StringBuffer another) 2つのStringBuffer
インスタンスを辞書的に比較します。delete
(int start, int end) このシーケンスの部分文字列内の文字を削除します。deleteCharAt
(int index) このシーケンス内の指定された位置にあるchar
を削除します。void
ensureCapacity
(int minimumCapacity) 容量が必ず指定された最小値以上になるようにします。void
getChars
(int srcBegin, int srcEnd, char[] dst, int dstBegin) このシーケンスからコピー先の文字配列dst
に文字がコピーされます。int
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。int
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。insert
(int offset, boolean b) boolean
引数の文字列表現をこのシーケンスに挿入します。insert
(int offset, char c) char
引数の文字列表現をこのシーケンスに挿入します。insert
(int offset, char[] str) char
配列引数の文字列表現をこのシーケンスに挿入します。insert
(int index, char[] str, int offset, int len) str
配列引数の部分配列の文字列表現を、このシーケンスに挿入します。insert
(int offset, double d) double
引数の文字列表現をこのシーケンスに挿入します。insert
(int offset, float f) float
引数の文字列表現をこのシーケンスに挿入します。insert
(int offset, int i) 2番目のint
引数の文字列表現をこのシーケンスに挿入します。insert
(int offset, long l) long
引数の文字列表現をこのシーケンスに挿入します。insert
(int dstOffset, CharSequence s) 指定されたCharSequence
をこのシーケンスに挿入します。insert
(int dstOffset, CharSequence s, int start, int end) 指定されたCharSequence
のサブシーケンスをこのシーケンスに挿入します。Object
引数の文字列表現をこの文字シーケンスに挿入します。文字列をこの文字シーケンスに挿入します。int
lastIndexOf
(String str) この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。int
lastIndexOf
(String str, int fromIndex) この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。int
length()
長さ(文字数)を返します。int
offsetByCodePoints
(int index, int codePointOffset) このシーケンス内で、指定されたindex
からcodePointOffset
コード・ポイント分だけオフセットされた位置のインデックスを返します。このシーケンスの部分文字列内の文字を、指定されたString
内の文字で置き換えます。reverse()
この文字シーケンスを、シーケンスの順序を逆にしたもので置き換えます。void
setCharAt
(int index, char ch) 指定されたインデックスの文字がch
に設定されます。void
setLength
(int newLength) 文字シーケンスの長さを設定します。subSequence
(int start, int end) このシーケンスのサブシーケンスである新規文字シーケンスを返します。substring
(int start) この文字シーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。substring
(int start, int end) このシーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。toString()
このシーケンス内のデータを表す文字列を返します。void
この文字シーケンスで使用されているストレージの低減を試みます。クラス java.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェース java.lang.CharSequenceで宣言されたメソッド
chars, codePoints, isEmpty
-
コンストラクタの詳細
-
StringBuffer
public StringBuffer()文字を持たず、初期容量が16文字である文字列バッファを構築します。 -
StringBuffer
public StringBuffer(int capacity) 文字を持たず、指定された初期容量を持つ文字列バッファを構築します。- パラメータ:
capacity
- 初期容量。- 例外:
NegativeArraySizeException
-capacity
引数が0
未満の場合。
-
StringBuffer
public StringBuffer(String str) 指定された文字列の内容に初期化された文字列バッファを構築します。 文字列バッファの初期容量は、16
に文字列引数の長さを加えたものです。- パラメータ:
str
- バッファの初期内容。
-
StringBuffer
public StringBuffer(CharSequence seq) 指定されたCharSequence
引数と同じ文字を含む文字列バッファを構築します。 文字列バッファの初期容量は、16
にCharSequence
引数の長さを加えたものです。- パラメータ:
seq
- コピー対象のシーケンス。- 導入されたバージョン:
- 1.5
-
-
メソッドの詳細
-
compareTo
public int compareTo(StringBuffer another) 2つのStringBuffer
インスタンスを辞書的に比較します。 このメソッドは、CharSequence.compare(this, another)メソッドで定義されている辞書式比較の場合と同じルールに従います。詳細なロケールに依存した文字列の比較は、
Collator
を参照してください。- 定義:
- インタフェース
Comparable<StringBuffer>
内のcompareTo
- 実装上のノート:
- このメソッドは、
this
(現在のオブジェクト)を同期しますが、this StringBuffer
が比較されるStringBuffer another
は同期しません。 - パラメータ:
another
- 比較対象となるStringBuffer
- 戻り値:
- この
StringBuffer
の文字シーケンスが引数StringBuffer
のシーケンスと同じならば値0
; このStringBuffer
がStringBuffer
引数より辞書的に小さい場合は負の整数; このStringBuffer
がStringBuffer
引数より辞書的に大きい場合は、正の整数。 - 導入されたバージョン:
- 11
-
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()
メソッドを呼び出した際に返される値に影響する可能性がありますが、必ずそうとはかぎりません。- 導入されたバージョン:
- 1.5
-
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
からCharSequence.length()
- 1
に参照します。指定されたインデックスで指定された
char
値が上位サロゲート範囲にあり、それに続くインデックスがこのシーケンスの長さ未満で、以降のインデックスのchar
値が下位サロゲート範囲にある場合、このサロゲート・ペアに対応する補助コード・ポイントが返されます。 それ以外の場合は、指定されたインデックスにあるchar
値が返されます。- パラメータ:
index
-char
値へのインデックス- 戻り値:
- 指定された
index
にある文字のコード・ポイント値 - 例外:
IndexOutOfBoundsException
-index
引数が負の値、またはこのシーケンスの長さと同じかこれより大きい値の場合。- 導入されたバージョン:
- 1.5
-
codePointBefore
public int codePointBefore(int index) 指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。 この索引は、char
値(Unicodeコード単位)を参照し、1
からCharSequence.length()
までの範囲を参照します。(index - 1)
のchar
値が下位サロゲート範囲に含まれており、(index - 2)
が負でなく、かつ(index - 2)
のchar
値が上位サロゲートに含まれている場合、そのサロゲート・ペアの補助コード・ポイント値が返されます。index - 1
のchar
値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。- パラメータ:
index
- 返すべきコード・ポイントの直後のインデックス- 戻り値:
- 指定されたインデックスの前にあるUnicodeコード・ポイント値。
- 例外:
IndexOutOfBoundsException
-index
引数が1未満であるか、またはこのシーケンスの長さより大きい値の場合。- 導入されたバージョン:
- 1.5
-
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
より大きい場合。- 導入されたバージョン:
- 1.5
-
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset) このシーケンス内で、指定されたindex
からcodePointOffset
コード・ポイント分だけオフセットされた位置のインデックスを返します。index
とcodePointOffset
で指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。- パラメータ:
index
- オフセットされるインデックスcodePointOffset
- オフセット(コード・ポイント数)- 戻り値:
- このシーケンス内でのインデックス
- 例外:
IndexOutOfBoundsException
-index
が負の値またはこのシーケンスの長さよりも大きい場合、codePointOffset
が正の値でありindex
で始まるサブシーケンスの持つコード・ポイント数がcodePointOffset
コード・ポイント数よりも少ない場合、あるいはcodePointOffset
が負の値でindex
の前のサブシーケンスの持つ値がcodePointOffset
コード・ポイントの絶対値よりも小さい場合。- 導入されたバージョン:
- 1.5
-
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()
に等しいかこれより大きい場合。- 関連項目:
-
append
public StringBuffer append(Object obj) Object
引数の文字列表現を追加します。最終的には、
String.valueOf(Object)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
obj
-Object
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuffer append(String str) 指定された文字列をこの文字シーケンスに追加します。String
引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。str
がnull
の場合は、"null"
という4文字が追加されます。append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数str
内のインデックスk-nの文字と等しくなります。- パラメータ:
str
- 文字列。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuffer append(StringBuffer sb) 指定されたStringBuffer
をこのシーケンスに追加します。StringBuffer
引数の文字がこのStringBuffer
の内容に順番に追加され、引数の長さの分だけこのStringBuffer
の長さが増えます。sb
がnull
の場合は、このStringBuffer
に"null"
という4文字が追加されます。appendメソッドの実行の直前に
StringBuffer
に格納されていた文字列の長さがn
であるとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数sb
内のインデックスk-nの文字と等しくなります。このメソッドは、
this
(追加先オブジェクト)と同期しますが、ソース(sb
)とは同期しません。- パラメータ:
sb
- 追加するStringBuffer
。- 戻り値:
- このオブジェクトへの参照。
- 導入されたバージョン:
- 1.4
-
append
public StringBuffer append(CharSequence s) 指定されたCharSequence
をこのシーケンスに追加します。CharSequence
引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。このメソッドの結果は、this.append(s, 0, s.length()); の呼び出しとまったく同じです。
このメソッドは、
this
(追加先オブジェクト)と同期しますが、ソース(s
)とは同期しません。s
がnull
の場合は、"null"
という4文字が追加されます。- 定義:
append
、インタフェースAppendable
- パラメータ:
s
- 追加するCharSequence
。- 戻り値:
- このオブジェクトへの参照。
- 導入されたバージョン:
- 1.5
-
append
public StringBuffer 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()
より大きい場合- 導入されたバージョン:
- 1.5
-
append
public StringBuffer append(char[] str) char
配列引数の文字列表現をこのシーケンスに追加します。配列引数の文字がこのシーケンスの内容に順番に追加されます。 このシーケンスの長さは、引数の長さの分だけ増えます。
最終的には、
String.valueOf(char[])
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
str
- 追加される文字。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuffer 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 StringBuffer append(boolean b) boolean
引数の文字列表現をシーケンスに追加します。最終的には、
String.valueOf(boolean)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
b
-boolean
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuffer append(char c) char
引数の文字列表現をこのシーケンスに追加します。引数がこのシーケンスの内容に追加されます。 このシーケンスの長さは
1
だけ増えます。最終的には、
String.valueOf(char)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- 定義:
append
、インタフェースAppendable
- パラメータ:
c
-char
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuffer append(int i) int
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(int)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
i
-int
。- 戻り値:
- このオブジェクトへの参照。
-
appendCodePoint
public StringBuffer appendCodePoint(int codePoint) codePoint
引数の文字列表現をこのシーケンスに追加します。引数がこのシーケンスの内容に追加されます。 このシーケンスの長さは
Character.charCount(codePoint)
だけ増えます。最終的には、
Character.toChars(int)
メソッドによって引数がchar
配列に変換されてから、その配列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
codePoint
- Unicodeコード・ポイント- 戻り値:
- このオブジェクトへの参照。
- 導入されたバージョン:
- 1.5
-
append
public StringBuffer append(long lng) long
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(long)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
lng
-long
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuffer append(float f) float
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(float)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
f
-float
。- 戻り値:
- このオブジェクトへの参照。
-
append
public StringBuffer append(double d) double
引数の文字列表現をこのシーケンスに追加します。最終的には、
String.valueOf(double)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。- パラメータ:
d
-double
。- 戻り値:
- このオブジェクトへの参照。
-
delete
public StringBuffer delete(int start, int end) このシーケンスの部分文字列内の文字を削除します。 部分文字列は、指定されたstart
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。start
がend
に等しい場合、変更は一切行われません。- パラメータ:
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。- 戻り値:
- このオブジェクト。
- 例外:
StringIndexOutOfBoundsException
-start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。- 導入されたバージョン:
- 1.2
-
deleteCharAt
public StringBuffer deleteCharAt(int index) このシーケンス内の指定された位置にあるchar
を削除します。 このシーケンスは1char
分だけ短くなります。ノート: 指定されたインデックスの文字が補助文字であっても、このメソッドはその文字全体を削除しません。 補助文字の処理を正しく行う必要がある場合は、
Character.charCount(thisSequence.codePointAt(index))
(thisSequence
はこのシーケンス)を呼び出して、削除されるchar
の数を確認します。- パラメータ:
index
- 削除されるchar
のインデックス- 戻り値:
- このオブジェクト。
- 例外:
StringIndexOutOfBoundsException
-index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。- 導入されたバージョン:
- 1.2
-
replace
public StringBuffer replace(int start, int end, String str) このシーケンスの部分文字列内の文字を、指定されたString
内の文字で置き換えます。 部分文字列は、指定されたstart
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。 まず、部分文字列内の文字が削除され、続いて、指定されたString
がstart
の位置に挿入されます。 (必要であれば、指定されたStringに合わせてこのシーケンスの長さが調整されます。)- パラメータ:
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。str
- 以前の内容を置換するString。- 戻り値:
- このオブジェクト。
- 例外:
StringIndexOutOfBoundsException
-start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。- 導入されたバージョン:
- 1.2
-
substring
public String substring(int start) この文字シーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。 部分文字列は指定されたインデックスで始まり、このシーケンスの末尾までになります。- パラメータ:
start
- 開始インデックス(この値を含む)。- 戻り値:
- 新しい文字列。
- 例外:
StringIndexOutOfBoundsException
-start
が0より小さい場合、あるいはこのオブジェクトの長さより大きい場合。- 導入されたバージョン:
- 1.2
-
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
よりも大きい場合- 導入されたバージョン:
- 1.4
-
substring
public String substring(int start, int end) このシーケンスに現在含まれている文字の部分シーケンスを含む新しいString
を返します。 部分文字列は、指定されたstart
から始まり、インデックスend - 1
にある文字までです。- パラメータ:
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。- 戻り値:
- 新しい文字列。
- 例外:
StringIndexOutOfBoundsException
-start
またはend
が負の値であるかlength()
より大きい場合、またはstart
がend
より大きい場合。- 導入されたバージョン:
- 1.2
-
insert
public StringBuffer 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
より大きい場合。- 導入されたバージョン:
- 1.2
-
insert
public StringBuffer insert(int offset, Object obj) Object
引数の文字列表現をこの文字シーケンスに挿入します。最終的には、
String.valueOf(Object)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。obj
-Object
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuffer 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 StringBuffer insert(int offset, char[] str) char
配列引数の文字列表現をこのシーケンスに挿入します。このシーケンスの内容の
offset
で示された位置に、配列引数の文字が挿入されます。 このシーケンスの長さは、引数の長さの分だけ増えます。最終的には、
String.valueOf(char[])
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。str
- 文字配列。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuffer insert(int dstOffset, CharSequence s) 指定されたCharSequence
をこのシーケンスに挿入します。このシーケンスの指定されたオフセット位置に
CharSequence
引数の文字が順番に挿入され、その位置にもともとあった文字がすべて上方に移動され、このシーケンスの長さが引数sの長さ分だけ増加します。このメソッドの結果は、このオブジェクトの
insert
(dstOffset, s, 0, s.length())メソッドの呼び出しとまったく同じです。s
がnull
の場合は、"null"
という4文字がこのシーケンスに挿入されます。- パラメータ:
dstOffset
- オフセット。s
- 挿入されるシーケンス- 戻り値:
- このオブジェクトへの参照。
- 例外:
IndexOutOfBoundsException
- オフセットが無効な場合。- 導入されたバージョン:
- 1.5
-
insert
public StringBuffer 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()
より大きい場合- 導入されたバージョン:
- 1.5
- kが
-
insert
public StringBuffer insert(int offset, boolean b) boolean
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(boolean)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。b
-boolean
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuffer insert(int offset, char c) char
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(char)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたインデックス位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。c
-char
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
IndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuffer insert(int offset, int i) 2番目のint
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(int)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。i
-int
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuffer insert(int offset, long l) long
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(long)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。l
-long
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuffer insert(int offset, float f) float
引数の文字列表現をこのシーケンスに挿入します。最終的には、
String.valueOf(float)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。- パラメータ:
offset
- オフセット。f
-float
。- 戻り値:
- このオブジェクトへの参照。
- 例外:
StringIndexOutOfBoundsException
- オフセットが無効な場合。
-
insert
public StringBuffer 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
。 - 導入されたバージョン:
- 1.4
-
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
。 - 導入されたバージョン:
- 1.4
-
lastIndexOf
public int lastIndexOf(String str) この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。 空の文字列「」が最後に出現する位置は、this.length()
と見なされます。返されるインデックスは、次の式がtrueとなるような最大値
k
になります。
このようなthis.toString().startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。- 戻り値:
- 指定された部分文字列が最後に出現する位置のインデックス。そのような出現箇所がない場合は
-1
。 - 導入されたバージョン:
- 1.4
-
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
。 - 導入されたバージョン:
- 1.4
-
reverse
public StringBuffer reverse()この文字シーケンスを、シーケンスの順序を逆にしたもので置き換えます。 シーケンスにサロゲート・ペアが含まれている場合、それらは反転操作時に単一の文字として扱われます。 したがって、サロゲートの上位-下位の順番が反転することは決してありません。reverse
メソッドの実行直前に、この文字シーケンスの文字長(char
値での長さではない)がnであったとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、以前の文字シーケンス内のインデックスn-k-1の文字と等しくなります。反転操作を行うと、操作前にはペアになっていなかった下位サロゲートと上位サロゲートからサロゲート・ペアが生成される可能性があります。 たとえば、「\uDC00\uD800」を反転すると「\uD800\uDC00」が生成されますが、これは有効なサロゲート・ペアです。
- 戻り値:
- このオブジェクトへの参照。
- 導入されたバージョン:
- 1.0.2
-
toString
public String toString()このシーケンス内のデータを表す文字列を返します。 新しいString
オブジェクトが割り当てられ、現在このオブジェクトで表されている文字シーケンスを含むように初期化されます。 その後、このString
が返されます。 その後このシーケンスが変更されても、String
の内容には影響ありません。- 定義:
toString
、インタフェースCharSequence
- 戻り値:
- この文字シーケンスの文字列表現。
-
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
-