共用方式為


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)

將指定十進位數的字串表示附加至這個實例。

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[])

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由使用指定格式提供者之任何自變數的字串表示所取代。

AppendFormat(IFormatProvider, CompositeFormat, ReadOnlySpan<Object>)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由使用指定格式提供者之任何自變數的字串表示所取代。

AppendFormat(IFormatProvider, String, Object)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由使用指定格式提供者的單一自變數字串表示所取代。

AppendFormat(IFormatProvider, String, Object, Object)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會使用指定的格式提供者,由兩個自變數之一的字串表示所取代。

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

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由使用指定格式提供者之三個自變數之一的字串表示所取代。

AppendFormat(IFormatProvider, String, Object[])

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會使用指定的格式提供者,取代參數陣列中對應自變數的字串表示。

AppendFormat(IFormatProvider, String, ReadOnlySpan<Object>)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會使用指定的格式提供者,取代參數範圍中對應自變數的字串表示。

AppendFormat(String, Object)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由單一自變數的字串表示所取代。

AppendFormat(String, Object, Object)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由兩個自變數之一的字串表示所取代。

AppendFormat(String, Object, Object, Object)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由三個自變數之一的字串表示所取代。

AppendFormat(String, Object[])

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由參數陣列中對應自變數的字串表示所取代。

AppendFormat(String, ReadOnlySpan<Object>)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由參數範圍中對應自變數的字串表示所取代。

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

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由使用指定格式提供者之任何自變數的字串表示所取代。

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

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由使用指定格式提供者之任何自變數的字串表示所取代。

AppendFormat<TArg0>(IFormatProvider, CompositeFormat, TArg0)

處理包含零個或多個格式項目的複合格式字串,將傳回的字串附加至這個實例。 每個格式項目都會由使用指定格式提供者之任何自變數的字串表示所取代。

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)

將十進位數的字串表示插入這個實例中指定的字元位置。

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)

將指定字串的一或多個複本插入這個實例的指定字元位置。

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>)

以這個產生器中的另一個實例取代一個唯讀字元範圍的所有實例。

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

以這個產生器一部分的另一個實例取代一個唯讀字元範圍的所有實例。

Replace(String, String)

以另一個指定的字串取代這個實例中所有出現的指定字串。

Replace(String, String, Int32, Int32)

以另一個指定的字串取代這個實例的子字串內所有出現的指定字串。

ToString()

將這個實體的值轉換為 String

ToString(Int32, Int32)

將這個實體的子字串值轉換為 String

明確介面實作

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

使用還原串行化目前 StringBuilder 物件所需的數據,填入 SerializationInfo 物件。

擴充方法

Append(StringBuilder, StringSegment)

將指定的 StringSegment 新增至 StringBuilder

AppendRedacted(StringBuilder, Redactor, ReadOnlySpan<Char>)

修訂潛在的敏感數據,並將它附加至 StringBuilder 實例。

AppendRedacted(StringBuilder, Redactor, String)

修訂潛在的敏感數據,並將它附加至 StringBuilder 實例。

適用於

另請參閱