Що робить StringBuilder




Що робить StringBuilder



StringBuffer та StringBuilder

1. Відмінність між String, StringBuilder, StringBuffer

  1. Класи StringBuffer та StringBuilder у Java використовуються, коли виникає необхідність зробити багато змін у рядку символів.
  2. На відміну від String, об'єкти типу StringBuffer і StringBuilder можуть бути змінені знову і знову.
  3. Java StringBuilder був введений з Java 5.
  4. Основна відмінність між StringBuffer і StringBuilder в Java є те, що методи StringBuilder не є безпечними для потоків (несинхронізовані).
  5. Рекомендується використовувати StringBuilder щоразу, коли це можливо, тому що він швидше, ніж StringBuffer в Java.
  6. Однак, якщо необхідна безпека потоків, найкращим варіантом є StringBuffer об'єкти .

2. Конструктори StringBuilder

  • StringBuilder() - об'єкт StringBuilder можна створити без параметрів, при цьому в ньому буде зарезервовано місце розміщення 16 символів.
  • StringBuilder(int size) - ви також можете передати конструктору ціле число, щоб явно задати необхідний розмір буфера.
  • StringBuilder(String str) - ви можете передати конструктору рядок, при цьому вона буде скопійована в об'єкт і додатково до цього буде зарезервовано місце ще для 16 символів.
  • StringBuilder(CharSequence chars)

У наступному прикладі створимо об'єкт класу StringBuilder і виведемо на консоль його розмір методом length() . Метод capacity() повертає розмір буфера:

public class StringBuilderExample1 < public static void main(String[] args) < StringBuilder stringBuilder = новий StringBuilder("Hello"); System.out.println("string="+stringBuilder); System.out.println("length = " + stringBuilder.length()); System.out.println("capacity header3">3. Методи charAt(), setCharAt() 

Метод charAt() повертає символ у зазначеній позиції. А setCharAt() змінює символ у зазначеній позиції:

public class SetCharAtExample < public static void main(String[] args) < StringBuilder sb = new StringBuilder("Hello"); System.out.println(sb); System.out.println("charAt(1) header4">4. Метод append() 

Метод append() приєднує підрядок до рядка:

public class AppendExample < public static void main(String[] args) < int a = 42; StringBuilder sb = новий StringBuilder(40); String s = sb.append("a = ").append(a).append("!").toString(); System.out.println(s); >>

5. Метод insert()

Метод insert() вставляє підрядок у вказану позицію:

public class InsertExample < public static void main(String[] args) < StringBuilder sb = new StringBuilder("I Java!"); sb.insert(2, "like"); System.out.println(sb); >>

6. Метод reverse()

Використовується для інвертування рядка:

public class ReverseExample < public static void main(String[] args) < StringBuilder s = new StringBuilder("abcdef"); System.out.println(s); s.reverse(); System.out.println(s); >>

7. Методи delete() та deleteCharAt()

Метод delete() видаляє підрядок, використовуючи вказані позиції.

Метод deleteCharAt() видаляє символ із зазначеної позиції:

public class DeleteExample < public static void main(String[] args) < StringBuilder sb = new StringBuilder("This is a test."); sb.delete(4, 7); System.out.println("Після delete:" + sb); sb.deleteCharAt(0); System.out.println("Після deleteCharAt: " + sb); >>

8. Метод replace()

Замінює підрядок у вказаній позиції інший:

public class ReplaceExample < public static void main(String[] args) < StringBuilder stringBuilder = new StringBuilder("Це простий тест."); stringBuilder.replace(4, 11, "був"); System.out.println("Після заміни: " + stringBuilder); >>

9. Методи equals() та hashCode()

Класи StringBuilder та StringBuffer не перевизначають методи equals() та hashCode(). Вони використовують реалізацію класу Object:

public class StringBuilderEquals < public static void main(String[] args) < StringBuilder stringBuilder1 = новий StringBuilder("Hello"); StringBuilder stringBuilder2 = новий StringBuilder("Hello"); System.out.println(stringBuilder1.equals(stringBuilder2)); System.out.println(stringBuilder1 == stringBuilder2); >>

Клас StringBuilder. Методи класу StringBuilder. Приклади

Як відомо, у мові програмування C# для роботи з рядками введено тип string, який відповідає класу System.String або String. Однак, при інтенсивній роботі з рядками доцільніше використовувати клас System.Text.StringBuilder, який забезпечує більш високу продуктивність у порівнянні з класом String.

Відмінність між класами String та StringBuilder полягає в наступному.

У випадку з класом String, коли виконується операція присвоєння =

// Виділення пам'яті для рядкового літералу "Text1"
string s =  "Text1"; // Перерозподіл пам'яті (виділення нової ділянки) s =  "Text2";

пам'ять нового рядкового літералу ( «Text2» ) перерозподіляється по новому: виділяється нову ділянку пам'яті, куди копіюється новий змінений рядок. Пам'ять, виділена під попередній фрагмент, надалі знищується збирачем сміття (Garbage collector).

У класі StringBuilder при зміні рядка-оригіналу, пам'ять для нового рядка виділяється лише у випадку, коли розмір нового рядка більший за розмір рядка-оригіналу. При цьому пам'яті виділяється вдвічі більше попереднього розміру. Якщо розмір нового рядка менший або дорівнює розміру рядка-оригіналу, пам'ять не перерозподіляється. Такий механізм дозволяє підвищити швидкодію за рахунок зменшення інтенсивності (кількості) виділення нових ресурсів та звільнення використаних ресурсів.

Висновок: при інтенсивній роботі з рядками рекомендується використовувати клас StringBuilder, в інших випадках рекомендується використовувати клас String (або string).

2. У якому просторі імен оголошено клас StringBuilder?

Щоб використати скорочене ім'я класу StringBuilder, потрібно попередньо підключити простір імен System.Text

Однак можна безпосередньо звертатися до імені класу за допомогою рядка System.Text.StringBuilder .

3. Операція присвоєння = для класу StringBuilder

У класі System.Text.StringBuilder оператора присвоєння не визначено. Тому, при оголошенні об'єкта класу StringBuilder

StringBuilder sb =  new
StringBuilder();

використовувати оператор присвоєння = для присвоєння об'єкту значення

sb =  "Hello world!"; // Помилка компіляції

не вдасться. У цьому випадку компілятор випустить помилку

Cannot implicitly convert type 'string' to System.String.StringBuilder
4. Операція присвоєння одиночного символу за індексом у класах String та StringBuilder

Між класами System.String і System.Text.StringBuilder існує відмінність при використанні операції присвоєння індексу одиночного символу.

Змінній (об'єкту) типу String не можна надавати одиночний символ за індексом як показано нижче

string s =  "Some text"; s[5] =  'n'; // помилка компіляції

Одиночний символ можна лише прочитати

string s =  "Some text"; char c = s[5];  // працює, c = 't'

На відміну від типу String для типу StringBuilder окремий символ може бути змінений за його індексом. Наприклад

StringBuilder sb =  new
StringBuilder("Some text"); sb[5] =  'n'; // працює
5. Створення об'єкта класу StringBuilder. Приклади

Клас StringBuilder має кілька конструкторів, які виділяють пам'ять і ініціалізують екземпляри цього класу. Нижче наведено приклади створення екземплярів класу (об'єктів) StringBuilder

using System.Text; .  // 1. Створення об'єкта класу StringBuilder
StringBuilder sb1 =  new
StringBuilder(); StringBuilder sb2 =  new
StringBuilder(10); // Рядок, довжиною до 10 символів
StringBuilder sb3 =  new
StringBuilder("Hello world!"); // Константний рядок .
6. Методи класу StringBuilder

У цьому розділі розглянуті методи класу StringBuilder, які використовуються найчастіше.

6.1. Метод Append(). Додати дані до поточного екземпляра

Метод Append() призначений для додавання копії екземпляра певного типу до поточного екземпляра. Метод має багато перевантажених реалізацій для різних типів.

Нижче наведено приклади деяких реалізацій методу Append().

// Метод Append() - додати дані будь-якого зі стандартних типів
// 1. Додати рядок типу string
StringBuilder sb =  new
StringBuilder("Hello"); sb.Append("world!"); Console.WriteLine("sb = ", sb);  // sb = Hello world!
// 2. Додати рядок типу StringBuilder
StringBuilder sb2 =  new
StringBuilder("abc"); StringBuilder sb3 =  new
StringBuilder("def"); sb2.Append(sb3);  Console.WriteLine("sb2 = ", sb2);  // sb2 = abcdef
// 3. Додати число типу double
StringBuilder sb4 = new  StringBuilder("Pi color: #0000ff;">double Pi = 3.141592; sb4.Append(Pi);  Console.WriteLine("", sb4);  // Pi = 3.141592
// 4. Додати змінну типу bool
StringBuilder sb5 =  new
StringBuilder(); sb5.Append(true); Console.WriteLine("sb5 = ", sb5);  // sb5 = True
6.2. Змінити окремий символ у рядку. Доступ за індексом

На відміну від типу string в класі StringBuilder можна змінювати окремий символ за його індексом. Наприклад.

// Змінити окремий символ рядка можна на відміну типу String
StringBuilder sb =  new
StringBuilder("Text."); sb[0] =  'N'; Console.WriteLine("sb = ", sb);  // sb = Next.
6.3. Метод Insert(). Вставка рядка у задану позицію

Метод Insert() призначений для вставки об'єктів різних типів у задану позицію рядка. Метод має багато перевантажених реалізацій. У всіх реалізаціях перший параметр методу визначає позицію вставки.

приклад.

// Метод Insert() - вставка даних у вихідний рядок із заданої позиції
// 1. Вставка об'єкта типу string
StringBuilder sb1 =  new
StringBuilder("abcdef"); StringBuilder sb2 = sb1.Insert(1,  "---"); Console.WriteLine("sb1 = ", sb1);  // sb1 = a---bcdef
Console.WriteLine("sb2 = ", sb2);  // sb2 = a-- - bcdef
// 2. Вставка об'єкта типу int
StringBuilder sb3 =  new
StringBuilder("Max = "); sb3.Insert(sb3.Length, "256");  Console.WriteLine("", sb3);  // Max = 256
// 3. Вставка об'єкта типу double
StringBuilder sb4 =  new
StringBuilder(); sb4.Insert(0,  Math.PI);  Console.WriteLine("Pi = ", sb4);  // Pi = 3.141592653589793
6.4. Метод Remove (). Видалення з вихідного рядка діапазону символів

Метод Remove() використовується для видалення із заданого рядка діапазону символів, починаючи з заданої позиції. Метод отримує два цілих параметри. Перший параметр вказує індекс початку, з якого видаляється рядок. Другий параметр вказує кількість символів, що видаляються.

приклад.

// Метод Remove() - видаляє з вихідного рядка діапазон символів
StringBuilder sb =  new
StringBuilder("abcdefghi"); sb.Remove(2, 3);  // видалити "cde"
Console.WriteLine("sb = ", sb);  // sb = abfghi
StringBuilder sb2 =  new
StringBuilder("01234567890"); sb2.Remove(0, 5);  Console.WriteLine("sb2 = ", sb2);  // sb2 = 567890
6.5. Метод Replace(). Замінює символ/підстроку у вихідному рядку

Метод Replace() використовується для заміни підрядка у рядку. Метод працює як одиночних символів так рядків. Метод має кілька перевантажених реалізацій, серед яких виділяються чотири наступні:

  • заміна одного символу типу char на інший символ типу char;
  • заміна одного символу типу char на інший символ типу char починаючи із заданої позиції та в заданому діапазоні;
  • заміна одного рядка типу string на інший рядок типу string;
  • заміна одного рядка типу string на інший рядок типу string починаючи із заданої позиції та в заданому діапазоні.

приклад.

// Метод Replace() - замінює символ/підрядок у вихідному рядку
// на заданий символ/підрядок
// 1.Реалізація Replace(char, char) – заміна одного символу на інший
StringBuilder sb =  new
StringBuilder("Solution"); sb.Replace('o', '+'); Console.WriteLine("sb = ", sb);  // sb = S+luti+n
// 2. Реалізація Replace (char, char, int, int)
StringBuilder sb2 =  new
StringBuilder("0123456789"); // Заміна символу '2' на '0'
// Перегляд рядка починається з позиції 0 до позиції 3 sb2.Replace('2', '+', 0, 3); // sb2 = 01+3456789
Console.WriteLine("sb2 = ", sb2);  // Записати в рядок нове значення sb2.Clear(); sb2.Insert(0,  "200+20+2=222"); // Замінити у рядку всі символи '2' на символи '3' sb2.Replace('2', '3'0, sb2.Length);  Console.WriteLine("sb2 = ", sb2);  // sb2 = 300+30+3=333
// 3. Реалізація Replace(string, string)
StringBuilder sb3 =  new
StringBuilder("abcdef abcdef"); sb3.Replace("bcd", "AAA"); // Замінити всі входження "bcd" на "AAA"
Console.WriteLine("sb3 = ", sb3);  // sb3 = aAAAef aAAAef
// 4. Реалізація Replace(string, string, int, int)
StringBuilder sb4 =  new
StringBuilder("Hello Hello Hello"); sb4.Replace("Hello", "ABC"0, sb4.Length);  Console.WriteLine("sb4 = ", sb4);  // sb4 = ABC ABC ABC sb4.Clear(); sb4.Append("1++2++3++4++5"); sb4.Replace("++", "--", 0, 7); // у діапазоні від 0 до 7 Console.WriteLine("sb4 = ", sb4);  // sb4 = 1-2-3++4++5
6.6. Метод Clear(). Очищення рядка

Метод Clear() реалізує очищення рядка (видалення всіх символів у рядку).

приклад.

// Метод Clear() - очищення рядка
StringBuilder sb =  new
StringBuilder("This is a string."); Console.WriteLine("sb = ", sb);  // sb = This is a string.
// Очистити рядок sb.Clear();  Console.WriteLine("sb = ", sb);  // sb =
6.7. Метод CopyTo(). Копіювати рядок у масив типу char

Метод CopyTo() копіює символи з вихідного рядка масив типу char ( System.Char ). Метод отримує 4 параметри, які мають таке призначення:

  • позиція у вихідному рядку (тип int);
  • масив-призначення (тип char[] ) в який записуються символи вихідного рядка;
  • позиція в масиві-призначенні (тип int ) з якої починається копіювання символів вихідного рядка;
  • кількість символів, що копіюються (тип int).

приклад.

// Метод CopyTo() - копіює символи вихідного рядка масив типу Char
StringBuilder sb =  new
StringBuilder("abcdef"); char[] arr =  new char[5]; // Виділити пам'ять для масиву arr
// скопіювати фрагмент "bcd" в arr
// Параметри:
// 1 - вихідна позиція у рядку sb;
// arr - масив-призначення в який копіюються символи
// 0 - позиція в arr, з якої записуються символи sb
// 3 - кількість символів, які копіюються з sb до arr sb.CopyTo(1, arr, 0, 3);  // arr =  // скопіювати фрагмент "cdef" в arr2
char[] arrC2 =  new char[6]; sb.CopyTo(2, arrC2, 2, 4);  // arrC2 =  // Вивести рядок arr2[]
for (int i = 0; i < arrC2.Length; i++) < Console.WriteLine("arrc[] = ", i, arrC2[i]); >
6.8. Метод ToString(). Конвертувати рядок типу StringBuilder у рядок типу String

Для конвертування рядка типу StringBuilder у рядок типу String використовується метод ToString(), який реалізований у класі System.Object.

Відповідно до документації .NET Framework метод ToString() має дві реалізації загальна форма яких така:

public override string ToString()  public string ToString(int
startIndex, int
length)

У першій реалізації відбувається просте конвертування рядка типу StringBuilder у рядок типу String. У другій реалізації копіюється рядок починаючи з позиції startIndex довжиною length символів.

приклад.

// Метод ToString() - конвертує об'єкт типу StringBuilder у String
StringBuilder sb =  new
StringBuilder("Hello world!"); // Конвертування рядка повністю
String s1 = sb.ToString();  Console.WriteLine("s1 = ", s1);  // s1 = "Hello world!"
// Конвертування рядка починаючи з позиції 6, // кількість символів, що копіюються, дорівнює 5
String s2 = sb.ToString(6, 5);  // s2 = "world"
Console.WriteLine("s2 = ", s2);
6.9. Властивості Length, Capasity, MaxCapasity

У класі StringBuilder реалізовано три цілочисні властивості, які визначають характеристики рядка:

  • Length – поточна кількість символів у рядку;
  • Capasity – кількість символів, які можна розмістити у рядок без додаткового виділення пам'яті;
  • MaxCapasity – максимальний вміст рядка, який можна виділити.

приклад.

// Властивості Length, Capasity, MaxCapasity
StringBuilder sb = new  StringBuilder("12345"); int len, capasity, maxCapasity;  // Length - поточна кількість символів у рядку len = sb.Length;  // Length = 5
// Capasity - кількість символів, які можуть бути поміщені в рядок без
// Додаткового виділення пам'яті capasity = sb. Capacity;  // Capasity = 16
// MaxCapasity - максимальний вміст рядка, який може бути виділений maxCapasity = sb.MaxCapacity;  //maxCapasity = 2147483647

Пов'язані теми

Використання класу StringBuilder у .NET

Об'єкт String є незмінним. Щоразу при використанні одного з методів у класі System.String ви створюєте об'єкт рядка у пам'яті, для якого потрібно виділення нового простору. У випадках, коли необхідно виконувати зміни рядка, витрати, пов'язані зі створенням об'єкта String, можуть виявитися значними. Для зміни рядка без створення нового об'єкта можна використовувати клас System.Text.StringBuilder. Наприклад, використання класу StringBuilder може підвищити продуктивність при з'єднанні великої кількості рядків циклу.

Імпорт простір імен System.Text

Клас StringBuilder знаходиться у просторі імен System.Text. Щоб не вказувати в коді повне ім'я типу, можна імпортувати простір імен System.Text:

using namespace System; using namespace System::Text;
using System; використовуючи System.Text;

Створення екземплярів об'єкта StringBuilder

Ви можете створити екземпляр класу StringBuilder шляхом ініціалізації змінної за допомогою одного з перевантажених методів конструктора, як показано в наведеному нижче прикладі.

StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!");
StringBuilder myStringBuilder = новий StringBuilder("Hello World!");
Dim myStringBuilder As New StringBuilder("Hello World!")

Налаштування ємності та довжини

Хоча StringBuilder є динамічним об'єктом, який дозволяє вам розгорнути ряд символів у рядку, які вона інкапсулює, ви можете вказати максимальну кількість символів, що містяться в ній. Це значення називається ємністю об'єкта, і його не слід плутати з довжиною рядка, який містить поточний об'єкт StringBuilder. Наприклад, ви можете створити екземпляр класу StringBuilder з рядком Hello, довжина якого становить 5 символів, вказавши при цьому максимальну ємність об'єкта 25 символів. При зміні значення StringBuilder розмір не перерозподіляється, якщо не досягнуто максимальної ємності. Коли це відбувається, новий простір виділяється автоматично, а ємність подвоюється. Ви можете вказати ємність класу StringBuilder за допомогою одного з перевантажених конструкторів. У цьому прикладі показано, що об'єкт myStringBuilder можна розгорнути максимум на 25 позицій.

StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!", 25);
StringBuilder myStringBuilder = new StringBuilder("Hello World!", 25);
Dim myStringBuilder As New StringBuilder("Hello World!", 25)

Крім того, можна використовувати доступну для читання або запису властивість Capacity, щоб задати максимальну довжину об'єкта. У наступному прикладі використовується властивість Capacity визначення максимальної довжини об'єкта.

myStringBuilder->Capacity = 25;
myStringBuilder.Capacity = 25;
myStringBuilder.Capacity = 25

Метод EnsureCapacity можна використовувати для перевірки ємності поточного об'єкта StringBuilder. Якщо ємність більша за передане значення, зміни не вносяться; однак якщо ємність менша за передане значення, поточна ємність змінюється для відповідності переданому значенню.

Можна також переглянути або встановити властивість Length. Якщо ви задали для якості Length значення більше значення властивості Capacity, значення властивості Capacity буде автоматично змінено на те саме значення, що і у властивості Length. Якщо задати для якості Length значення менше довжини рядка у поточному об'єкті StringBuilder, рядок буде скорочено.

Зміна рядка StringBuilder

У наступній таблиці наведено методи, які можна використовувати для зміни вмісту об'єкта StringBuilder.

Ім'я методу Використання
StringBuilder.Append Додає відомості до кінця поточного об'єкта StringBuilder.
StringBuilder.AppendFormat Замінює форматований текст описувач формату, переданий у рядку.
StringBuilder.Insert Вставляє рядок або об'єкт у вказаний індекс поточного об'єкта StringBuilder.
StringBuilder.Remove Видаляє вказану кількість символів із поточного об'єкта StringBuilder.
StringBuilder.Replace Заміщує всі входження зазначеного символу або рядка у поточному StringBuilder на інший вказаний символ чи рядок.

Додавання

Метод Append дозволяє додати текст або рядкове представлення об'єкта до кінця рядка, представленого поточним об'єктом StringBuilder. Наступний приклад ініціалізує StringBuilder з текстом Hello World, а потім додає текст до кінця об'єкта. Простір виділяється автоматично за потреби.

StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Append("What a beautiful day."); Console::WriteLine(myStringBuilder); // The example displays following output: // Hello World! What a beautiful day.
StringBuilder myStringBuilder = новий StringBuilder("Hello World!"); myStringBuilder.Append(" What a beautiful day."); Console.WriteLine(myStringBuilder); // The example displays following output: // Hello World! What a beautiful day.
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Append(" What a beautiful day.") Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello World! What a beautiful day.

AppendFormat

Метод StringBuilder.AppendFormat додає текс до кінця об'єкта StringBuilder. Він підтримує можливість складеного форматування (додаткові відомості див. у статті Складове форматування) шляхом виклику реалізації IFormattable для одного або декількох об'єктів, що форматуються. Отже, він приймає рядки стандартного формату для числових значень, значень дати і часу, значень перерахування, рядки формату користувача для чисел і дат і рядки формату, визначені для типів користувача. (Відомості про форматування див. у розділі Форматування типів.) Цей метод можна використовувати для налаштування формату змінних та додавання цих значень у .StringBuilder У наступному прикладі метод AppendFormat поміщає в кінець об'єкта StringBuilder ціле чисельне значення, відформатоване у вигляді значення валюти.

int MyInt = 25; StringBuilder^ myStringBuilder = gcnew StringBuilder("Your total is "); myStringBuilder->AppendFormat(" ", MyInt); Console::WriteLine(myStringBuilder); // The example displays the following output: // Your total is $25.00
int MyInt = 25; StringBuilder myStringBuilder = новий StringBuilder("Your total is "); myStringBuilder.AppendFormat(" ", MyInt); Console.WriteLine(myStringBuilder); // The example displays the following output: // Your total is $25.00
Dim MyInt As Integer = 25 Dim myStringBuilder As New StringBuilder("Your total is ") myStringBuilder.AppendFormat(" ", MyInt) Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Your total is $25.00

Insert

Метод Insert додає рядок або об'єкт у вказану позицію у поточному об'єкті StringBuilder. У цьому прикладі цей метод вставляє слово в шосту позицію об'єкта StringBuilder.

StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Insert(6,"Beautiful "); Console::WriteLine(myStringBuilder); // The example displays following output: // Hello Beautiful World!
StringBuilder myStringBuilder = новий StringBuilder("Hello World!"); myStringBuilder.Insert(6,"Beautiful"); Console.WriteLine(myStringBuilder); // The example displays following output: // Hello Beautiful World!
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Insert(6, "Beautiful ") Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello Beautiful World!

Видалити

Ви можете використовувати метод Remove, щоб видалити вказану кількість символів з поточного об'єкта StringBuilder, починаючи з вказаного індексу (з відліком з нуля). У наступному прикладі метод Remove використовується скорочення об'єкта StringBuilder.

StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Remove(5,7); Console::WriteLine(myStringBuilder); // The example displays the following output: // Hello
StringBuilder myStringBuilder = новий StringBuilder("Hello World!"); myStringBuilder.Remove(5,7); Console.WriteLine(myStringBuilder); // The example displays the following output: // Hello
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Remove(5, 7) Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello

Replace

Метод Replace можна використовувати для заміни символів в об'єкті StringBuilder на інші вказані символи. У наступному прикладі метод Replace знаходить всі екземпляри знака оклику (!) в об'єкті StringBuilder і замінює їх знаками питання (?).

StringBuilder^ myStringBuilder = gcnew StringBuilder("Hello World!"); myStringBuilder->Replace('!', '?'); Console::WriteLine(myStringBuilder); // The example displays following output: // Hello World?
StringBuilder myStringBuilder = новий StringBuilder("Hello World!"); myStringBuilder.Replace('!', '?'); Console.WriteLine(myStringBuilder); // The example displays following output: // Hello World?
Dim myStringBuilder As New StringBuilder("Hello World!") myStringBuilder.Replace("!"c, "?"c) Console.WriteLine(myStringBuilder) ' The example displays the following output: ' Hello World?

Перетворення об'єкта StringBuilder на рядок

Необхідно перетворити об'єкт StringBuilder на String, перш ніж передавати представлений об'єктом StringBuilder рядок методу, який містить параметр String, або вивести її в інтерфейсі користувача. Це перетворення можна виконати, викликавши метод StringBuilder.ToString. Наступний приклад викликає кілька методів StringBuilder, а потім викликає метод StringBuilder.ToString() для відображення рядка.

using System; використовуючи System.Text; public class Example < public static void Main() < StringBuilder sb = new StringBuilder(); bool flag = true; string[] spellings = < "recieve", "receeve", "receive" >; sb.AppendFormat("Which of the following spellings is :", flag); sb.AppendLine(); for (int ctr = 0; ctr <= spellings.GetUpperBound(0); ctr++) < sb.AppendFormat(" . ", ctr, spellings[ctr]); sb.AppendLine(); > sb.AppendLine(); Console.WriteLine(sb.ToString()); > > // The example displays the following output: // Which of the following spellings is True: // 0. recieve // ​​1. receeve // ​​2. receive
Імпортні системи. () Для ctr As Integer = 0 Для сpellings.GetUpperBound(0) sb.AppendFormat(" . ", ctr, spellings(ctr)) sb.AppendLine() Next sb.AppendLine() Console.WriteLine(sb.ToString()) End Sub End Module ' The example displays the following output:' of the following spellings is True: ' 0. recieve ' 1. receeve ' 2. receive

Див. також

Джерело цього вмісту можна знайти на GitHub, де також можна створювати та переглядати проблеми та запити на витягування. Для отримання додаткових відомостей див. у нашому посібнику для учасників.

Схожі статті

  • Як робиться Каті голови
  • Що робить темно синій розчин в Террарії
  • Що робить масло лемонграсу
  • Як робиться люфа
  • Що робить Pandas Groupby
  • Скільки часу робиться суха стяжка підлоги
  • Як робиться обв'язування котла
  • Хто робить проект додому
  • Недавні статті

  • Як бродить зернова брага
  • Що робити якщо не засмагаєш на сонці чому засмага погано лягає на шкіру або перестає прилипати
  • Як швидко зняти гель лак без апарату
  • Як робиться Каті голови
  • Яка гребінець краще для об'єму
  • Чим роблять м'яку покрівлю
  • Чи можна залишати крем для обличчя на ніч
  • Де знаходиться датчик селектора
  • географія нашої діяльності
    вулиця Драгоманова, 27
    вул. Курчатова 1Б
    вул. Міцкевича 130
    вул. Лабунського, 1
    вул. Макарова-Пржевальського
    вул. Толстого 10
    вул. Грушевського 28
    вул. Перший промінь (Черняхівського)
    напишіть нам

    сообщение успешно отправлено
    x