モジュール java.base
パッケージ java.lang

クラスStringBuffer

java.lang.Object
java.lang.StringBuffer
すべての実装されたインタフェース:
Serializable, Appendable, CharSequence, Comparable<StringBuffer>

public final class StringBuffer extends Object implements Serializable, Comparable<StringBuffer>, CharSequence
スレッドセーフな可変の文字列。 文字列バッファは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のノート:
StringBufferComparableを実装しますが、equalsはオーバーライドしません。 したがって、StringBufferの自然な順序はequalsと一致しません。 StringBufferオブジェクトがSortedMapのキーまたはSortedSetの要素として使用される場合は注意が必要です。 詳細については、ComparableSortedMap,またはSortedSetを参照してください。
導入されたバージョン:
1.0
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    文字を持たず、初期容量が16文字である文字列バッファを構築します。
    StringBuffer(int capacity)
    文字を持たず、指定された初期容量を持つ文字列バッファを構築します。
    指定されたCharSequence引数と同じ文字を含む文字列バッファを構築します。
    指定された文字列の内容に初期化された文字列バッファを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    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引数の文字列表現を追加します。
    指定された文字列をこの文字シーケンスに追加します。
    指定されたStringBufferをこのシーケンスに追加します。
    appendCodePoint(int codePoint)
    codePoint引数の文字列表現をこのシーケンスに追加します。
    int
    現在の容量を返します。
    char
    charAt(int index)
    このシーケンス内の指定されたインデックスのchar値を返します。
    このシーケンスのchar値をゼロ拡張したintを含むストリームを返します。
    int
    codePointAt(int index)
    指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。
    int
    codePointBefore(int index)
    指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。
    int
    codePointCount(int beginIndex, int endIndex)
    このシーケンスの指定されたテキスト範囲に含まれるUnicodeコード・ポイントの数を返します。
    このシーケンスからコード・ポイント値のストリームを返します。
    int
    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
    indexOf(String str, int fromIndex)
    指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。
    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のサブシーケンスをこのシーケンスに挿入します。
    insert(int offset, Object obj)
    Object引数の文字列表現をこの文字シーケンスに挿入します。
    insert(int offset, String str)
    文字列をこの文字シーケンスに挿入します。
    int
    この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。
    int
    lastIndexOf(String str, int fromIndex)
    この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。
    int
    長さ(文字数)を返します。
    int
    offsetByCodePoints(int index, int codePointOffset)
    このシーケンス内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返します。
    replace(int start, int end, String str)
    このシーケンスの部分文字列内の文字を、指定されたString内の文字で置き換えます。
    この文字シーケンスを、シーケンスの順序を逆にしたもので置き換えます。
    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を返します。
    このシーケンス内のデータを表す文字列を返します。
    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引数と同じ文字を含む文字列バッファを構築します。 文字列バッファの初期容量は、16CharSequence引数の長さを加えたものです。
      パラメータ:
      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; このStringBufferStringBuffer引数より辞書的に小さい場合は負の整数; このStringBufferStringBuffer引数より辞書的に大きい場合は、正の整数。
      導入されたバージョン:
      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 - 1char値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。

      パラメータ:
      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がこのシーケンスの長さより大きいか、あるいはbeginIndexendIndexより大きい場合。
      導入されたバージョン:
      1.5
    • offsetByCodePoints

      public int offsetByCodePoints(int index, int codePointOffset)
      このシーケンス内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返します。 indexcodePointOffsetで指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ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引数より大きい
      • srcEndthis.length()より大きい
      • dstBegin+srcEnd-srcBegindst.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引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。 strnullの場合は、"null"という4文字が追加されます。

      appendメソッドの実行直前に、この文字シーケンスの長さがnであったとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、knより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数str内のインデックスk-nの文字と等しくなります。

      パラメータ:
      str - 文字列。
      戻り値:
      このオブジェクトへの参照。
    • append

      public StringBuffer append(StringBuffer sb)
      指定されたStringBufferをこのシーケンスに追加します。

      StringBuffer引数の文字がこのStringBufferの内容に順番に追加され、引数の長さの分だけこのStringBufferの長さが増えます。 sbnullの場合は、このStringBuffer"null"という4文字が追加されます。

      appendメソッドの実行の直前にStringBufferに格納されていた文字列の長さがnであるとします。 このとき、新しい文字シーケンス内のインデックスkの文字は、knより小さい場合は以前の文字シーケンス内のインデックス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)とは同期しません。

      snullの場合は、"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の文字は、knより小さい場合はこのシーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数s内のインデックスk+start-nの文字と等しくなります。

      snullの場合、このメソッドはsパラメータが"null"という4文字を含むシーケンスであるかのように、文字を追加します。

      定義:
      append、インタフェースAppendable
      パラメータ:
      s - 追加されるシーケンス。
      start - 追加される部分シーケンスの開始インデックス。
      end - 追加される部分シーケンスの終了インデックス。
      戻り値:
      このオブジェクトへの参照。
      例外:
      IndexOutOfBoundsException - startが負の値の場合、startendより大きい場合、またはends.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の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。 startendに等しい場合、変更は一切行われません。
      パラメータ:
      start - 開始インデックス(この値を含む)。
      end - 終了インデックス(この値を含まない)。
      戻り値:
      このオブジェクト。
      例外:
      StringIndexOutOfBoundsException - startが負の値の場合、length()より大きい場合、あるいはendより大きい場合。
      導入されたバージョン:
      1.2
    • deleteCharAt

      public StringBuffer deleteCharAt(int index)
      このシーケンス内の指定された位置にあるcharを削除します。 このシーケンスは1 char分だけ短くなります。

      ノート: 指定されたインデックスの文字が補助文字であっても、このメソッドはその文字全体を削除しません。 補助文字の処理を正しく行う必要がある場合は、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の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。 まず、部分文字列内の文字が削除され、続いて、指定されたStringstartの位置に挿入されます。 (必要であれば、指定された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が負の値の場合、endlength()よりも大きい場合、あるいはstartendよりも大きい場合
      導入されたバージョン:
      1.4
    • substring

      public String substring(int start, int end)
      このシーケンスに現在含まれている文字の部分シーケンスを含む新しいStringを返します。 部分文字列は、指定されたstartから始まり、インデックスend - 1にある文字までです。
      パラメータ:
      start - 開始インデックス(この値を含む)。
      end - 終了インデックス(この値を含まない)。
      戻り値:
      新しい文字列。
      例外:
      StringIndexOutOfBoundsException - startまたはendが負の値であるかlength()より大きい場合、またはstartendより大きい場合。
      導入されたバージョン:
      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引数の文字が順番に挿入され、その位置にもともとあった文字はすべて上方に移動され、このシーケンスの長さが引数の長さ分だけ増加します。 strnullの場合は、"null"という4文字がこのシーケンスに挿入されます。

      新しい文字列のインデックスkの位置にある文字は、次の文字に等しくなります。

      • koffsetより小さい場合は、以前の文字シーケンス内のインデックスkの位置にある文字
      • koffsetより小さくはないが、offset+str.length()より小さい場合は、引数str内のインデックスk-offsetの位置にある文字
      • koffset+str.length()より小さくない場合は、以前の文字シーケンス内のインデックスk-str.length()の位置にある文字

      offset引数は0に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。

      パラメータ:
      offset - オフセット。
      str - 文字列。
      戻り値:
      このオブジェクトへの参照。
      例外:
      StringIndexOutOfBoundsException - オフセットが無効な場合。
    • 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())メソッドの呼び出しとまったく同じです。

      snullの場合は、"null"という4文字がこのシーケンスに挿入されます。

      パラメータ:
      dstOffset - オフセット。
      s - 挿入されるシーケンス
      戻り値:
      このオブジェクトへの参照。
      例外:
      IndexOutOfBoundsException - オフセットが無効な場合。
      導入されたバージョン:
      1.5
    • insert

      public StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
      指定されたCharSequenceのサブシーケンスをこのシーケンスに挿入します。

      startendで指定される引数sの部分シーケンスが、このシーケンス内の指定された挿入先offsetに順番に挿入され、その位置にもともとあった文字はすべて上方に移動されます。 このシーケンスの長さはend - startだけ増えます。

      このシーケンス内のインデックスkの位置にある文字は、次に等しくなります。

      • kdstOffsetより小さい場合は、このシーケンス内のインデックスkの位置にある文字
      • kdstOffsetに等しいかそれより大きく、dstOffset+end-startより小さい場合は、引数s内のインデックスk+start-dstOffsetの位置にある文字
      • kdstOffset+end-startに等しいかそれより大きい場合は、このシーケンス内のインデックスk-(end-start)の位置にある文字

      dstOffset引数は0に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。

      start引数は負でない値でなければならず、endより大きくてはいけません。

      end引数は、startに等しいかそれより大きく、sの長さに等しいかそれより小さくなければなりません。

      snullの場合、このメソッドはsパラメータが"null"という4文字を含むシーケンスであるかのように、文字を挿入します。

      パラメータ:
      dstOffset - このシーケンス内のオフセット。
      s - 挿入されるシーケンス。
      start - 挿入される部分シーケンスの開始インデックス。
      end - 挿入される部分シーケンスの終了インデックス。
      戻り値:
      このオブジェクトへの参照。
      例外:
      IndexOutOfBoundsException - dstOffsetが負の値であるかthis.length()より大きい場合、startまたはendが負の値の場合、startendより大きい場合、あるいはends.length()より大きい場合
      導入されたバージョン:
      1.5
    • 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