クラスStringBuilder

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

public final class StringBuilder extends Object implements Appendable, Serializable, Comparable<StringBuilder>, 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がスローされます。

APIのノート:
StringBuilderComparableを実装しますが、equalsはオーバーライドしません。 したがって、StringBuilderの自然な 序はequalsと一致しません。 StringBuilderオブジェクトがSortedMapのキーまたはSortedSetの要 として使用される 合は注意が必要です。 詳細は、ComparableSortedMapまたはSortedSetを参照してく さい。
導入されたバージョン:
1.5
関連 目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    文字を持たず、初期容量が16文字である文字列ビルダーを構築します。
    StringBuilder(int capacity)
    文字を持たず、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引数の文字列表現をこのシーケンスに追 します。
    指定した文字シーケンスをこのAppendableに追 します。
    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つのStringBuilderインスタンスを辞書的に比較します。
    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コード・ポイント分 けオフセットされた位置のインデックスを返します。
    repeat(int codePoint, int count)
    codePoint引数の文字列表現のcountコピーをこの 序に繰り返します。
    repeat(CharSequence cs, int count)
    指定したCharSequence cscountコピーをこの 序に追 します。
    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で宣言されたメソッド

    charAt, chars, codePoints, isEmpty, 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引数と同じ文字を含む文字列ビルダーを構築します。 文字列ビルダーの初期容量は、16CharSequence引数の長さを えたものです。
      パラメータ:
      seq - コピー対象のシーケンス。
  • メソッドの詳細

    • compareTo

      public int compareTo(StringBuilder another)
      2つのStringBuilderインスタンスを辞書的に比較します。 このメソッドは、CharSequence.compare(this, another)メソッドで定義されている辞書式比較の 合と同じルールに従います。

      詳細なロケールに依存した文字列の比較は、Collatorを参照してく さい。

      定義:
      インタフェースComparable<StringBuilder>内のcompareTo
      パラメータ:
      another - 比較対象となるStringBuilder
      戻り値:
      このStringBuilderの文字シーケンスが引数StringBuilderのシーケンスと同じならば値0; このStringBuilderStringBuilder引数より辞書的に小さい 合は の整数; このStringBuilderStringBuilder引数より辞書的に大きい 合は、正の整数。
      導入されたバージョン:
      11
    • append

      public StringBuilder append(Object obj)
      Object引数の文字列表現を追 します。

      最終的には、String.valueOf(Object)メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追 された 合とまったく同じ結果になります。

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

      public StringBuilder append(String str)
      指定された文字列をこの文字シーケンスに追 します。

      String引数の文字は、 番に追 され、引数の長さの分 けこのシーケンスの長さが増えます。 strnullの 合は、"null"という4文字が追 されます。

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

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

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

      StringBuffer引数の文字がこのシーケンスに 番に追 され、引数の長さの分 けこのシーケンスの長さが増えます。 sbnullの 合は、このシーケンスに"null"という4文字が追 されます。

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

      パラメータ:
      sb - 追 するStringBuffer
      戻り値:
      このオブジェクトへの参照。
    • append

      public StringBuilder append(CharSequence s)
      インタフェースからコピーされた説明: Appendable
      指定した文字シーケンスをこのAppendableに追 します。

      文字シーケンスcsqを実装するクラスによっては、シーケンス全体を追 できない 合があります。 たとえば、csqCharBufferの 合、追 する部分列はバッファの位置と制限によって定義されます。

      このAppendableの内容は、メソッド呼出し中にCharSequenceが変更された 合、またはCharSequenceへのアクセス時に例外がスローされた 合には指定されません。

      定義:
      append、インタフェースAppendable
      パラメータ:
      s - 追 する文字シーケンス。 csqnullの 合、この追 可能には4文字の"null"が追 されます。
      戻り値:
      このAppendableへの参照
    • append

      public StringBuilder 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文字を含むシーケンスであるかのように、文字を追 します。

      CharSequenceがメソッド呼出し中に変更された 合、またはCharSequenceへのアクセス時に例外がスローされた 合、内容は指定されません。

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

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

      ノート: 指定されたインデックスの文字が補助文字であっても、このメソッドはその文字全体を削除しません。 補助文字の処理を正しく行う必要がある 合は、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の文字までになりますが、そのような文字が存在しない 合はシーケンスの末尾までになります。 まず、部分文字列内の文字が削除され、続いて、指定されたStringstartの位置に挿入されます。 (必要であれば、指定された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引数の文字が 番に挿入され、その位置にもともとあった文字はすべて上方に移動され、このシーケンスの長さが引数の長さ分 け増 します。 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 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())メソッドの呼び出しとまったく同じです。

      CharSequenceがメソッド呼出し中に変更された 合、またはCharSequenceへのアクセス時に例外がスローされた 合、内容は指定されません。

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

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

      public StringBuilder 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文字を含むシーケンスであるかのように、文字を挿入します。

      CharSequenceがメソッド呼出し中に変更された 合、またはCharSequenceへのアクセス時に例外がスローされた 合、内容は指定されません。

      パラメータ:
      dstOffset - このシーケンス内のオフセット。
      s - 挿入されるシーケンス。
      start - 挿入される部分シーケンスの開始インデックス。
      end - 挿入される部分シーケンスの終了インデックス。
      戻り値:
      このオブジェクトへの参照。
      スロー:
      IndexOutOfBoundsException - dstOffsetが の値であるかthis.length()より大きい 合、startまたはendが の値の 合、startendより大きい 合、あるいはends.length()より大きい 合
    • 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)
      この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。

      返される索引は、次の最小値kです:

      
       this.toString().startsWith(str, k)
       
      そのようなkの値が存在しない 合、-1が返されます。

      パラメータ:
      str - 検索対象の部分文字列。
      戻り値:
      指定された部分文字列が最初に出現する位置のインデックス。そのような出現箇所がない 合は-1
    • indexOf

      public int indexOf(String str, int fromIndex)
      指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。

      返される索引は、次の最小値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()と見なされます。

      返される索引は、次の最大値kです:

      
       this.toString().startsWith(str, k)
       
      そのようなkの値が存在しない 合、-1が返されます。

      パラメータ:
      str - 検索対象の部分文字列。
      戻り値:
      指定された部分文字列が最後に出現する位置のインデックス。そのような出現箇所がない 合は-1
    • lastIndexOf

      public int lastIndexOf(String str, int fromIndex)
      この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先 方向に行われる)。

      返される索引は、次の最大値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」が生成されますが、これは有効なサロゲート・ペアです。

      戻り値:
      このオブジェクトへの参照。
    • repeat

      public StringBuilder repeat(int codePoint, int count)
      codePoint引数の文字列表現のcountコピーをこの 序に繰り返します。

      この 序の長さは、countに文字列表現の長さを乗算して増 します。

      通常は、コード・ポイントにchar式を使用します。 たとえば、

      // insert 10 asterisks into the buffer
      sb.repeat('*', 10);
      

      パラメータ:
      codePoint - 追 するコード・ポイント
      count - コピーする回数
      戻り値:
      このオブジェクトへの参照。
      スロー:
      IllegalArgumentException - 指定したcodePointが有効なUnicodeコード・ポイントでない 合、またはcountが の 合。
      導入されたバージョン:
      21
    • repeat

      public StringBuilder repeat(CharSequence cs, int count)
      指定したCharSequence cscountコピーをこの 序に追 します。

      この 序の長さは、countCharSequenceの長さを乗算して増 します。

      csnullの 合、4文字の"null"がこのシーケンスに繰り返されます。

      CharSequenceがメソッド呼出し中に変更された 合、またはCharSequenceへのアクセス時に例外がスローされた 合、内容は指定されません。

      パラメータ:
      cs - CharSequence
      count - コピーする回数
      戻り値:
      このオブジェクトへの参照。
      スロー:
      IllegalArgumentException - countが である 合
      導入されたバージョン:
      21
    • 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からCharSequence.length() - 1に参照します。

      指定されたインデックスで指定されたchar値が上位サロゲート範囲にあり、それに続くインデックスがこのシーケンスの長さ未満で、以降のインデックスのchar値が下位サロゲート範囲にある 合、このサロゲート・ペアに対応する補助コード・ポイントが返されます。 それ以外の 合は、指定されたインデックスにあるchar値が返されます。

      パラメータ:
      index - char値へのインデックス
      戻り値:
      指定されたindexにある文字のコード・ポイント値
      スロー:
      IndexOutOfBoundsException - index引数が の値、またはこのシーケンスの長さと同じかこれより大きい値の 合。
    • 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未満であるか、またはこのシーケンスの長さより大きい値の 合。
    • 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より大きい 合。
    • offsetByCodePoints

      public int offsetByCodePoints(int index, int codePointOffset)
      このシーケンス内で、指定されたindexからcodePointOffsetコード・ポイント分 けオフセットされた位置のインデックスを返します。 indexcodePointOffsetで指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ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引数より大きい
      • srcEndthis.length()より大きい
      • dstBegin+srcEnd-srcBegindst.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が の値の 合、endlength()よりも大きい 合、あるいはstartendよりも大きい 合
    • substring

      public String substring(int start, int end)
      このシーケンスに現在含まれている文字の部分シーケンスを含む新しいStringを返します。 部分文字列は、指定されたstartから始まり、インデックスend - 1にある文字までです。
      パラメータ:
      start - 開始インデックス(この値を含む)。
      end - 終了インデックス(この値を含まない)。
      戻り値:
      新しい文字列。
      スロー:
      StringIndexOutOfBoundsException - startまたはendが の値であるかlength()より大きい 合、またはstartendより大きい 合。
    • 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