Поделиться через


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

Возвращает объект, который можно использовать для итерации с помощью блоков символов, представленных в 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.

Методы расширения

Append(StringBuilder, StringSegment)

Добавьте указанный StringSegment в StringBuilder.

AppendRedacted(StringBuilder, Redactor, ReadOnlySpan<Char>)

Редактирует потенциально конфиденциальные данные и добавляет его в экземпляр StringBuilder.

AppendRedacted(StringBuilder, Redactor, String)

Редактирует потенциально конфиденциальные данные и добавляет его в экземпляр StringBuilder.

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

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