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

クラスStringBuilder

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

    public final class StringBuilder
    extends Object
    implements 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
    関連項目:
    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()
      このシーケンスからコード・ポイント値のストリームを返します。
      int compareTo​(StringBuilder another)
      2つのStringBuilderインスタンスを辞書的に比較します。
      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を返します。
      void trimToSize()
      この文字シーケンスで使用されているストレージの低減を試みます。
    • コンストラクタの詳細

      • 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である場合、追加される文字サブシーケンスはバッファの位置または制限によって定義されます。

        定義:
        append、インタフェース: Appendable
        パラメータ:
        s - 追加する文字シーケンス。 csqnullの場合は、このAppendableにnullという4文字が追加される。
        戻り値:
        この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文字を含むシーケンスであるかのように、文字を追加します。

        定義:
        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())メソッドの呼び出しとまったく同じです。

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

        パラメータ:
        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)
        この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。

        返されるインデックスは、次の式が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」が生成されますが、これは有効なサロゲート・ペアです。

        戻り値:
        このオブジェクトへの参照。
      • 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-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,&nbsp;end)
        次の呼び出しと正確に同じ動作になります。
        
         sb.substring(begin,&nbsp;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