StringBuilder クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class StringBuilder Implements ISerializable
[SerializableAttribute] [ComVisibleAttribute(true)] public sealed class StringBuilder : ISerializable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class StringBuilder sealed : ISerializable

このクラスは、可変型の文字のシーケンスである値を持つ、文字列のようなオブジェクトを表します。文字を追加、削除、置換または挿入して値を作成した後にその値を変更できるため、値が可変型と呼ばれます。比較のため、String クラスのトピックを参照してください。
このクラスのインスタンスを変更するメソッドの多くは、同じインスタンスへの参照を返します。インスタンスへの参照が返されるため、参照に対してメソッドまたはプロパティを呼び出すことができます。これは、連続した操作を次々にチェイン化する単一のステートメントを書く場合に役立ちます。
StringBuilder の容量は、インスタンスが指定した時間に格納できる最大文字数で、インスタンスの値の文字列形式の長さ以上です。容量は、Capacity プロパティまたは EnsureCapacity メソッドを使用して増減できます。ただし、Length プロパティの値より小さくすることはできません。
StringBuilder のインスタンスが初期化されるときに、容量または最大容量が指定されなかった場合は、実装に固有の既定の容量が使用されます。
パフォーマンスに関する考慮事項Concat メソッドと AppendFormat メソッドは、どちらも新しいデータを既存の String オブジェクトまたは StringBuilder オブジェクトに連結します。String オブジェクトの連結演算は、常に既存の文字列と新しいデータから新しいオブジェクトを作成します。一方、StringBuilder オブジェクトは、新しいデータの連結に使用するためのバッファを保持します。バッファに十分な容量がある場合は、新しいデータがバッファの末尾に追加されます。容量が足りない場合は、より大きなバッファが新しく割り当てられ、元のバッファから新しいバッファにデータがコピーされたうえで、新しいデータが新しいバッファに追加されます。
String または StringBuilder オブジェクトの連結演算のパフォーマンスは、メモリの割り当て頻度に依存しています。String の連結演算では、常にメモリが割り当てられます。一方、StringBuilder の連結演算では、StringBuilder オブジェクトのバッファに新しいデータのための十分な容量がない場合にのみ、メモリが割り当てられます。したがって、連結する String オブジェクトの数が決まっている場合は、String クラスを使用した方が効率的です。この場合、個々の連結演算は、コンパイラによって 1 つの演算に結合されます。これに対し、ランダムな数の文字列をユーザーから入力として受け取り、ループ処理で連結する場合など、連結する文字列の数が不定である場合は、StringBuilder オブジェクトが適しています。

次のコード例は、StringBuilder クラスで定義された多くのメソッドを呼び出す方法を示しています。
using System; using System.Text; public sealed class App { static void Main() { // Create a StringBuilder that expects to hold 50 characters. // Initialize the StringBuilder with "ABC". StringBuilder sb = new StringBuilder("ABC", 50); // Append three characters (D, E, and F) to the end of the StringBuilder. sb.Append(new char[] { 'D', 'E', 'F' }); // Append a format string to the end of the StringBuilder. sb.AppendFormat("GHI{0}{1}", 'J', 'k'); // Display the number of characters in the StringBuilder and its string. Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()); // Insert a string at the beginning of the StringBuilder. sb.Insert(0, "Alphabet: "); // Replace all lowercase k's with uppercase K's. sb.Replace('k', 'K'); // Display the number of characters in the StringBuilder and its string. Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()); } } // This code produces the following output. // // 11 chars: ABCDEFGHIJk // 21 chars: Alphabet: ABCDEFGHIJK
using namespace System; using namespace System::Text; int main() { // Create a StringBuilder that expects to hold 50 characters. // Initialize the StringBuilder with "ABC". StringBuilder^ sb = gcnew StringBuilder("ABC", 50); // Append three characters (D, E, and F) to the end of the // StringBuilder. sb->Append(gcnew array<Char>{'D', 'E', 'F'}); // Append a format string to the end of the StringBuilder. sb->AppendFormat("GHI{0}{1}", (Char)'J', (Char)'k'); // Display the number of characters in the StringBuilder // and its string. Console::WriteLine("{0} chars: {1}", sb->Length, sb->ToString()); // Insert a string at the beginning of the StringBuilder. sb->Insert(0, "Alphabet: "); // Replace all lowercase k's with uppercase K's. sb->Replace('k', 'K'); // Display the number of characters in the StringBuilder // and its string. Console::WriteLine("{0} chars: {1}", sb->Length, sb->ToString()); } // This code produces the following output. // // 11 chars: ABCDEFGHIJk // 21 chars: Alphabet: ABCDEFGHIJK

System.Text.StringBuilder


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


StringBuilder コンストラクタ ()
アセンブリ: mscorlib (mscorlib.dll 内)



次のコード例は、パラメータのない StringBuilder コンストラクタを呼び出す方法を示しています。
StringBuilder^ stringBuilder = gcnew StringBuilder;

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


StringBuilder コンストラクタ (String)
アセンブリ: mscorlib (mscorlib.dll 内)



次のコード例は、文字列を指定して StringBuilder コンストラクタを呼び出す方法を示しています。
Dim initialString As String = "Initial string." Dim stringBuilder As New StringBuilder(initialString)
string initialString = "Initial string."; StringBuilder stringBuilder = new StringBuilder(initialString);

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


StringBuilder コンストラクタ (Int32)
アセンブリ: mscorlib (mscorlib.dll 内)





Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


StringBuilder コンストラクタ (Int32, Int32)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim capacity As Integer Dim maxCapacity As Integer Dim instance As New StringBuilder(capacity, maxCapacity)



次のコード例は、容量と最大容量を指定して StringBuilder コンストラクタを呼び出す方法を示しています。
Dim capacity As Integer = 255 Dim maxCapacity As Integer = 1024 Dim stringBuilder As New StringBuilder(capacity, maxCapacity)
int capacity = 255; int maxCapacity = 1024; StringBuilder stringBuilder = new StringBuilder(capacity, maxCapacity);

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


StringBuilder コンストラクタ

名前 | 説明 |
---|---|
StringBuilder () | StringBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
StringBuilder (Int32) | 指定した容量を使用して、StringBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
StringBuilder (String) | 指定した文字列を使用して、StringBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
StringBuilder (Int32, Int32) | 指定した容量で始まり、指定した最大容量まで大きくなる StringBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
StringBuilder (String, Int32) | 指定した文字列および容量を使用して、StringBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
StringBuilder (String, Int32, Int32, Int32) | 指定した部分文字列および容量から StringBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |

StringBuilder コンストラクタ (String, Int32, Int32, Int32)
アセンブリ: mscorlib (mscorlib.dll 内)

Public Sub New ( _ value As String, _ startIndex As Integer, _ length As Integer, _ capacity As Integer _ )
Dim value As String Dim startIndex As Integer Dim length As Integer Dim capacity As Integer Dim instance As New StringBuilder(value, startIndex, length, capacity)



次のコード例は、文字列を指定して StringBuilder コンストラクタを呼び出す方法を示しています。
Dim initialString As String = "Initial string for stringbuilder." Dim startIndex As Integer = 0 Dim substringLength As Integer = 14 Dim capacity As Integer = 255 Dim stringBuilder As New StringBuilder(initialString, _ startIndex, substringLength, capacity)
string initialString = "Initial string for stringbuilder."; int startIndex = 0; int substringLength = 14; int capacity = 255; StringBuilder stringBuilder = new StringBuilder(initialString , startIndex, substringLength, capacity);

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


StringBuilder コンストラクタ (String, Int32)
アセンブリ: mscorlib (mscorlib.dll 内)




次のコード例は、初期文字列と容量を指定して StringBuilder コンストラクタを呼び出す方法を示しています。
Dim initialString As String = "Initial string. " Dim capacity As Integer = 255 Dim stringBuilder As New StringBuilder(initialString, capacity)
string initialString = "Initial string. "; int capacity = 255; StringBuilder stringBuilder = new StringBuilder(initialString, capacity);

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


StringBuilder プロパティ
StringBuilder メソッド

名前 | 説明 | |
---|---|---|
![]() | Append | オーバーロードされます。 指定したオブジェクトの文字列形式をこのインスタンスの末尾に追加します。 |
![]() | AppendFormat | オーバーロードされます。 0 個以上の書式指定を含んでいる書式付き文字列をこのインスタンスに追加します。各書式指定は、対応するオブジェクト引数の文字列形式に置換されます。 |
![]() | AppendLine | オーバーロードされます。 既定の行終端記号、または指定した文字列のコピーと既定の行終端記号を、このインスタンスの末尾に追加します。 |
![]() | CopyTo | このインスタンスの指定したセグメントにある文字を、特定の Char 配列の指定したセグメントにコピーします。 |
![]() | EnsureCapacity | このインスタンスの StringBuilder の容量が、指定した値以上になるようにします。 |
![]() | Equals | オーバーロードされます。 対象のインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | Insert | オーバーロードされます。 指定したオブジェクトの文字列形式をこのインスタンスの指定した文字位置に挿入します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | Remove | このインスタンスから、指定した範囲の文字を削除します。 |
![]() | Replace | オーバーロードされます。 このインスタンスに出現する指定文字または指定文字列をすべて、別に指定した文字または文字列に置換します。 |
![]() | ToString | オーバーロードされます。 オーバーライドされます。 StringBuilder の値を String に変換します。 |

名前 | 説明 | |
---|---|---|
![]() | System.Runtime.Serialization.ISerializable.GetObjectData | System.Runtime.Serialization.SerializationInfo オブジェクトに、現在の StringBuilder オブジェクトを逆シリアル化するために必要なデータを代入します。 |

StringBuilder メンバ
StringBuilder データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Append | オーバーロードされます。 指定したオブジェクトの文字列形式をこのインスタンスの末尾に追加します。 |
![]() | AppendFormat | オーバーロードされます。 0 個以上の書式指定を含んでいる書式付き文字列をこのインスタンスに追加します。各書式指定は、対応するオブジェクト引数の文字列形式に置換されます。 |
![]() | AppendLine | オーバーロードされます。 既定の行終端記号、または指定した文字列のコピーと既定の行終端記号を、このインスタンスの末尾に追加します。 |
![]() | CopyTo | このインスタンスの指定したセグメントにある文字を、特定の Char 配列の指定したセグメントにコピーします。 |
![]() | EnsureCapacity | このインスタンスの StringBuilder の容量が、指定した値以上になるようにします。 |
![]() | Equals | オーバーロードされます。 対象のインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | Insert | オーバーロードされます。 指定したオブジェクトの文字列形式をこのインスタンスの指定した文字位置に挿入します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Remove | このインスタンスから、指定した範囲の文字を削除します。 |
![]() | Replace | オーバーロードされます。 このインスタンスに出現する指定文字または指定文字列をすべて、別に指定した文字または文字列に置換します。 |
![]() | ToString | オーバーロードされます。 オーバーライドされます。 StringBuilder の値を String に変換します。 |

名前 | 説明 | |
---|---|---|
![]() | System.Runtime.Serialization.ISerializable.GetObjectData | System.Runtime.Serialization.SerializationInfo オブジェクトに、現在の StringBuilder オブジェクトを逆シリアル化するために必要なデータを代入します。 |

- StringBuilderのページへのリンク