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

クラス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
関連項目: