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 см. в разделе Дополнительные примечания API для StringBuilder.

Примечания для тех, кто вызывает этот метод

В .NET Core и в платформа .NET Framework 4.0 и более поздних версий при создании экземпляра StringBuilder объекта путем вызова StringBuilder(Int32, Int32) конструктора длина и емкость экземпляра 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)

Добавляет к данному экземпляру массив символов Юникода начиная с указанного адреса.

Append(Char, Int32)

Добавляет указанное число копий строкового представления символа Юникода к данному экземпляру.

Append(Char[])

Добавляет строковое представление символа Юникода в указанном массиве к данному экземпляру.

Append(Char[], Int32, Int32)

Добавляет строковое представление указанного дочернего массива символов Юникода к данному экземпляру.

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(String, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением одного аргумента.

AppendFormat(String, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из двух аргументов.

AppendFormat(String, Object, Object, Object)

Добавляет к данному экземпляру строку, возвращаемую в результате обработки строки составного формата, содержащей ноль или более элементов формата. Каждый элемент формата заменяется строковым представлением любого из трех аргументов.

AppendFormat(String, 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, String[])

Сцепляет строки из указанного массива, помещая между ними заданный символьный разделитель, а затем добавляет результат к текущему экземпляру построителя строк.

AppendJoin(String, Object[])

Сцепляет строковые представления элементов из указанного массива объектов, помещая между ними заданный разделитель, а затем добавляет результат к текущему экземпляру построителя строк.

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

Возвращает объект, который можно использовать для прохода по фрагментам символов, представленных в ReadOnlyMemory<Char>, созданном из данного экземпляра StringBuilder.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Insert(Int32, Boolean)

Вставляет строковое представление логического значения в данный экземпляр на указанную позицию символа.

Insert(Int32, Byte)

Вставляет строковое представление указанного 8-разрядного целого числа без знака в данный экземпляр на указанную позицию символа.

Insert(Int32, Char)

Вставляет строковое представление указанного символа Юникода в данный экземпляр на указанную позицию символа.

Insert(Int32, Char[])

Вставляет строковое представление указанного массива символов Юникода в данный экземпляр на указанную позицию символа.

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

Вставляет строковое представление указанного подмассива символов Юникода в данный экземпляр на указанную позицию символа.

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)

Заполняет объект SerializationInfo данными даты, необходимыми для десериализации текущего объекта StringBuilder.

Применяется к

См. также раздел