StringBuilder クラス

定義

変更可能な文字の文字列を表します。 このクラスは継承できません。

public ref class StringBuilder sealed
public ref class StringBuilder sealed : System::Runtime::Serialization::ISerializable
public sealed class StringBuilder
public sealed class StringBuilder : System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class StringBuilder
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class StringBuilder : System.Runtime.Serialization.ISerializable
type StringBuilder = class
type StringBuilder = class
    interface ISerializable
[<System.Serializable>]
type StringBuilder = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StringBuilder = class
    interface ISerializable
Public NotInheritable Class StringBuilder
Public NotInheritable Class StringBuilder
Implements ISerializable
継承
StringBuilder
属性
実装

次の例は、StringBuilder クラスで定義されているメソッドの多くを呼び出す方法を示しています。

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
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
open System.Text

// Create a StringBuilder that expects to hold 50 characters.
// Initialize the StringBuilder with "ABC".
let sb = StringBuilder("ABC", 50)

// Append three characters (D, E, and F) to the end of the StringBuilder.
sb.Append [| 'D'; 'E'; 'F' |] |> ignore

// Append a format string to the end of the StringBuilder.
sb.AppendFormat("GHI{0}{1}", 'J', 'k') |> ignore

// Display the number of characters in the StringBuilder and its string.
printfn $"{sb.Length} chars: {sb}"

// Insert a string at the beginning of the StringBuilder.
sb.Insert(0, "Alphabet: ") |> ignore

// Replace all lowercase k's with uppercase K's.
sb.Replace('k', 'K') |> ignore

// Display the number of characters in the StringBuilder and its string.
printfn $"{sb.Length} chars: {sb}"

// This code produces the following output.
//
// 11 chars: ABCDEFGHIJk
// 21 chars: Alphabet: ABCDEFGHIJK
Imports System.Text

Public Module App 
    Public Sub Main() 
        ' Create a StringBuilder that expects to hold 50 characters.
        ' Initialize the StringBuilder with "ABC".
        Dim sb As New StringBuilder("ABC", 50)

        ' Append three characters (D, E, and F) to the end of the StringBuilder.
        sb.Append(New Char() {"D"c, "E"c, "F"c})

        ' Append a format string to the end of the StringBuilder.
        sb.AppendFormat("GHI{0}{1}", "J"c, "k"c)

        ' 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())
    End Sub
End Module

' This code produces the following output.
'
' 11 chars: ABCDEFGHIJk
' 21 chars: Alphabet: ABCDEFGHIJK

注釈

この API の詳細については、「StringBuilderの補足 API 解説 参照してください。

注意 (呼び出し元)

.NET Core および .NET Framework 4.0 以降のバージョンでは、StringBuilder(Int32, Int32) コンストラクターを呼び出して StringBuilder オブジェクトをインスタンス化すると、StringBuilder インスタンスの長さと容量の両方が、MaxCapacity プロパティの値を超えて拡張される可能性があります。 これは、Append(String) メソッドと AppendFormat(String, Object) メソッドを呼び出して小さな文字列を追加する場合に特に発生する可能性があります。

コンストラクター

StringBuilder()

StringBuilder クラスの新しいインスタンスを初期化します。

StringBuilder(Int32)

指定した容量を使用して、StringBuilder クラスの新しいインスタンスを初期化します。

StringBuilder(Int32, Int32)

指定した容量で始まり、指定した最大値まで拡張できる、StringBuilder クラスの新しいインスタンスを初期化します。

StringBuilder(String)

指定した文字列を使用して、StringBuilder クラスの新しいインスタンスを初期化します。

StringBuilder(String, Int32)

指定した文字列と容量を使用して、StringBuilder クラスの新しいインスタンスを初期化します。

StringBuilder(String, Int32, Int32, Int32)

指定した部分文字列と容量から、StringBuilder クラスの新しいインスタンスを初期化します。

プロパティ

Capacity

現在のインスタンスによって割り当てられたメモリに格納できる最大文字数を取得または設定します。

Chars[Int32]

このインスタンス内の指定した文字位置にある文字を取得または設定します。

Length

現在の StringBuilder オブジェクトの長さを取得または設定します。

MaxCapacity

このインスタンスの最大容量を取得します。

メソッド

Append(Boolean)

指定したブール値の文字列形式をこのインスタンスに追加します。

Append(Byte)

指定した 8 ビット符号なし整数の文字列形式をこのインスタンスに追加します。

Append(Char)

指定した Char オブジェクトの文字列形式をこのインスタンスに追加します。

Append(Char*, Int32)

指定したアドレスから始まる Unicode 文字の配列をこのインスタンスに追加します。

Append(Char, Int32)

Unicode 文字の文字列表現の指定された数のコピーをこのインスタンスに追加します。

Append(Char[])

指定した配列内の Unicode 文字の文字列形式をこのインスタンスに追加します。

Append(Char[], Int32, Int32)

指定した Unicode 文字のサブ配列の文字列形式をこのインスタンスに追加します。

Append(Decimal)

指定した 10 進数の文字列形式をこのインスタンスに追加します。

Append(Double)

指定した倍精度浮動小数点数の文字列形式をこのインスタンスに追加します。

Append(IFormatProvider, StringBuilder+AppendInterpolatedStringHandler)

指定した書式を使用して、指定した挿入文字列をこのインスタンスに追加します。

Append(Int16)

指定した 16 ビット符号付き整数の文字列形式をこのインスタンスに追加します。

Append(Int32)

指定した 32 ビット符号付き整数の文字列形式をこのインスタンスに追加します。

Append(Int64)

指定した 64 ビット符号付き整数の文字列形式をこのインスタンスに追加します。

Append(Object)

指定したオブジェクトの文字列形式をこのインスタンスに追加します。

Append(ReadOnlyMemory<Char>)

指定した読み取り専用文字メモリ領域の文字列形式をこのインスタンスに追加します。

Append(ReadOnlySpan<Char>)

指定した読み取り専用文字スパンの文字列形式をこのインスタンスに追加します。

Append(SByte)

指定した 8 ビット符号付き整数の文字列形式をこのインスタンスに追加します。

Append(Single)

指定した単精度浮動小数点数の文字列形式をこのインスタンスに追加します。

Append(String)

指定した文字列のコピーをこのインスタンスに追加します。

Append(String, Int32, Int32)

指定した部分文字列のコピーをこのインスタンスに追加します。

Append(StringBuilder)

指定した文字列ビルダーの文字列形式をこのインスタンスに追加します。

Append(StringBuilder, Int32, Int32)

指定した文字列ビルダー内の部分文字列のコピーをこのインスタンスに追加します。

Append(StringBuilder+AppendInterpolatedStringHandler)

指定した挿入文字列をこのインスタンスに追加します。

Append(UInt16)

指定した 16 ビット符号なし整数の文字列形式をこのインスタンスに追加します。

Append(UInt32)

指定した 32 ビット符号なし整数の文字列形式をこのインスタンスに追加します。

Append(UInt64)

指定した 64 ビット符号なし整数の文字列形式をこのインスタンスに追加します。

AppendFormat(IFormatProvider, CompositeFormat, Object[])

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、任意の引数の文字列形式に置き換えられます。

AppendFormat(IFormatProvider, CompositeFormat, ReadOnlySpan<Object>)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、任意の引数の文字列形式に置き換えられます。

AppendFormat(IFormatProvider, String, Object)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、1 つの引数の文字列形式に置き換えられます。

AppendFormat(IFormatProvider, String, Object, Object)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、2 つの引数の文字列形式に置き換えられます。

AppendFormat(IFormatProvider, String, Object, Object, Object)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、3 つの引数のいずれかの文字列表現に置き換えられます。

AppendFormat(IFormatProvider, String, Object[])

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式項目は、指定された書式プロバイダーを使用して、パラメーター配列内の対応する引数の文字列形式に置き換えられます。

AppendFormat(IFormatProvider, String, ReadOnlySpan<Object>)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式項目は、指定された書式プロバイダーを使用して、パラメーター スパン内の対応する引数の文字列形式に置き換えられます。

AppendFormat(String, Object)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式項目は、1 つの引数の文字列形式に置き換えられます。

AppendFormat(String, Object, Object)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式項目は、2 つの引数の文字列形式に置き換えられます。

AppendFormat(String, Object, Object, Object)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、3 つの引数の文字列形式に置き換えられます。

AppendFormat(String, Object[])

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式項目は、パラメーター配列内の対応する引数の文字列形式に置き換えられます。

AppendFormat(String, ReadOnlySpan<Object>)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式項目は、パラメーター スパン内の対応する引数の文字列形式に置き換えられます。

AppendFormat<TArg0,TArg1,TArg2>(IFormatProvider, CompositeFormat, TArg0, TArg1, TArg2)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、任意の引数の文字列形式に置き換えられます。

AppendFormat<TArg0,TArg1>(IFormatProvider, CompositeFormat, TArg0, TArg1)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、任意の引数の文字列形式に置き換えられます。

AppendFormat<TArg0>(IFormatProvider, CompositeFormat, TArg0)

0 個以上の書式指定項目を含む複合書式指定文字列を処理して返された文字列を、このインスタンスに追加します。 各書式指定項目は、指定した書式プロバイダーを使用して、任意の引数の文字列形式に置き換えられます。

AppendJoin(Char, Object[])

指定した文字区切り記号を使用して、指定されたオブジェクト配列内の要素の文字列形式を連結し、文字列ビルダーの現在のインスタンスに結果を追加します。

AppendJoin(Char, ReadOnlySpan<Object>)

指定された文字区切り記号を使用して、指定されたオブジェクトスパン内の要素の文字列表現を連結し、結果を文字列ビルダーの現在のインスタンスに追加します。

AppendJoin(Char, ReadOnlySpan<String>)

各文字列の間に指定した文字区切り記号を使用して、指定されたスパンの文字列を連結し、文字列ビルダーの現在のインスタンスに結果を追加します。

AppendJoin(Char, String[])

指定した配列の文字列を連結し、各文字列の間に指定した文字区切り記号を使用して、結果を文字列ビルダーの現在のインスタンスに追加します。

AppendJoin(String, Object[])

指定されたオブジェクト配列内の要素の文字列表現を連結し、各メンバー間で指定された区切り記号を使用して、結果を文字列ビルダーの現在のインスタンスに追加します。

AppendJoin(String, ReadOnlySpan<Object>)

各メンバー間で指定された区切り記号を使用して、オブジェクトの指定されたスパン内の要素の文字列形式を連結し、文字列ビルダーの現在のインスタンスに結果を追加します。

AppendJoin(String, ReadOnlySpan<String>)

指定したスパンの文字列を連結し、各文字列の間に指定した区切り記号を使用して、結果を文字列ビルダーの現在のインスタンスに追加します。

AppendJoin(String, String[])

指定した配列の文字列を連結し、各文字列の間に指定された区切り記号を使用して、結果を文字列ビルダーの現在のインスタンスに追加します。

AppendJoin<T>(Char, IEnumerable<T>)

各メンバー間で指定した文字区切り記号を使用して、コレクションのメンバーを連結して追加します。

AppendJoin<T>(String, IEnumerable<T>)

指定した区切り記号を使用して、コレクションのメンバーを連結して追加します。

AppendLine()

現在の StringBuilder オブジェクトの末尾に既定の行終端記号を追加します。

AppendLine(IFormatProvider, StringBuilder+AppendInterpolatedStringHandler)

現在の StringBuilder オブジェクトの末尾に、指定した書式と既定の行終端記号を使用して、指定した挿入文字列を追加します。

AppendLine(String)

指定した文字列のコピーの後に、現在の StringBuilder オブジェクトの末尾に既定の行終端記号を追加します。

AppendLine(StringBuilder+AppendInterpolatedStringHandler)

現在の StringBuilder オブジェクトの末尾に、指定した補間文字列の後に既定の行終端記号を追加します。

Clear()

現在の StringBuilder インスタンスからすべての文字を削除します。

CopyTo(Int32, Char[], Int32, Int32)

このインスタンスの指定したセグメントからコピー先の配列の指定したセグメントに文字 Char コピーします。

CopyTo(Int32, Span<Char>, Int32)

このインスタンスの指定したセグメントからコピー先の Char スパンに文字をコピーします。

EnsureCapacity(Int32)

StringBuilder のこのインスタンスの容量が、少なくとも指定された値であることを確認します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Equals(ReadOnlySpan<Char>)

このインスタンス内の文字が、指定した読み取り専用文字スパンの文字と等しいかどうかを示す値を返します。

Equals(StringBuilder)

このインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。

GetChunks()

この StringBuilder インスタンスから作成された ReadOnlyMemory<Char> で表される文字のチャンクを反復処理するために使用できるオブジェクトを返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
Insert(Int32, Boolean)

指定した文字位置に、ブール値の文字列形式をこのインスタンスに挿入します。

Insert(Int32, Byte)

指定した 8 ビット符号なし整数の文字列形式を、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, Char)

指定した Unicode 文字の文字列形式を、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, Char[])

指定した Unicode 文字の配列の文字列形式を、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, Char[], Int32, Int32)

指定した Unicode 文字のサブ配列の文字列形式を、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, Decimal)

指定した文字位置に、このインスタンスに 10 進数の文字列形式を挿入します。

Insert(Int32, Double)

指定した文字位置に、倍精度浮動小数点数の文字列形式をこのインスタンスに挿入します。

Insert(Int32, Int16)

指定した 16 ビット符号付き整数の文字列形式を、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, Int32)

指定した 32 ビット符号付き整数の文字列形式を、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, Int64)

指定した文字位置に、このインスタンスに 64 ビット符号付き整数の文字列形式を挿入します。

Insert(Int32, Object)

指定した文字位置にオブジェクトの文字列形式をこのインスタンスに挿入します。

Insert(Int32, ReadOnlySpan<Char>)

指定した文字位置に、このインスタンスに文字のシーケンスを挿入します。

Insert(Int32, SByte)

指定した 8 ビット符号付き整数の文字列形式を、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, Single)

指定した文字位置に、単精度浮動小数点数の文字列形式をこのインスタンスに挿入します。

Insert(Int32, String)

指定した文字位置に文字列をこのインスタンスに挿入します。

Insert(Int32, String, Int32)

指定した文字列の 1 つ以上のコピーを、指定した文字位置にこのインスタンスに挿入します。

Insert(Int32, UInt16)

指定した文字位置に、16 ビット符号なし整数の文字列形式をこのインスタンスに挿入します。

Insert(Int32, UInt32)

指定した文字位置に、32 ビット符号なし整数の文字列形式をこのインスタンスに挿入します。

Insert(Int32, UInt64)

指定した文字位置に、このインスタンスに 64 ビット符号なし整数の文字列形式を挿入します。

MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
Remove(Int32, Int32)

指定した文字範囲をこのインスタンスから削除します。

Replace(Char, Char)

このインスタンス内の指定した文字のすべての出現箇所を、別の指定した文字に置き換えます。

Replace(Char, Char, Int32, Int32)

このインスタンスの部分文字列内で、指定した文字のすべての出現箇所を別の指定された文字に置き換えます。

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

このビルダーで、1 つの読み取り専用文字スパンのすべてのインスタンスを別のインスタンスに置き換えます。

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Int32, Int32)

このビルダーの一部で、1 つの読み取り専用文字スパンのすべてのインスタンスを別のインスタンスに置き換えます。

Replace(String, String)

このインスタンス内の指定された文字列のすべての出現箇所を、別の指定された文字列に置き換えます。

Replace(String, String, Int32, Int32)

このインスタンスの部分文字列内で、指定した文字列のすべての出現箇所を別の指定された文字列に置き換えます。

ToString()

このインスタンスの値を Stringに変換します。

ToString(Int32, Int32)

このインスタンスの部分文字列の値を Stringに変換します。

明示的なインターフェイスの実装

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

現在の StringBuilder オブジェクトを逆シリアル化するために必要なデータを SerializationInfo オブジェクトに設定します。

拡張メソッド

Append(StringBuilder, StringSegment)

指定した StringSegmentStringBuilderに追加します。

AppendRedacted(StringBuilder, Redactor, ReadOnlySpan<Char>)

潜在的に機密性の高いデータを編集し、StringBuilder インスタンスに追加します。

AppendRedacted(StringBuilder, Redactor, String)

潜在的に機密性の高いデータを編集し、StringBuilder インスタンスに追加します。

適用対象

こちらもご覧ください