Строки типа StringBuilder

Возможности, предоставляемые классом string, широки, однако требование не­изменности его объектов может оказаться неудобным. В этом случае для работы со строками применяется класс StringBuilder, определенный в пространстве имен System. Text и позволяющий изменять значение своих экземпляров.

При создании экземпляра обязательно использовать операцию new и конструктор, например:

StringBuilder a = new StringBuilder(); //1

StringBuilder b = new StringBuilder( "qwerty" ); //2

StringBuilder с = new StringBuilder( 100 ); //3

StringBuilder d = new StringBuilder( "qwerty", 100 ); //4

StringBuilder e = new StringBuilder( "qwerty", 1, 3, 100 ); //5

В конструкторе класса указываются два вида параметров: инициализирующая строка или подстрока и объем памяти, отводимой под экземпляр. Один или оба параметра могут отсутствовать, в этом случае используются их значения по умолчанию.

Если применяется конструктор без параметров (оператор 1), создается пустая строка размера, заданного по умолчанию (16 байт). Другие виды конструкторов задают объем памяти, выделяемой строке, и/или ее начальное значение. Например, в операторе 5 объект инициализируется подстрокой длиной 3 символа, Начиная с первого (подстрока "wer"). Основные элементы класса StringBuilder приведены в таблице 8.4.

Таблица 8.4 - Основные элементы класса System.Text.StringBuilder

Метод Описание
Append Добавление в конец строки. Разные варианты метода позволяют добавлять в строку величины любых встроенных типов, массивы символов, строки и подстроки типа string
AppendFormat Добавление форматированной строки в конец строки
Capacity Получение или установка емкости буфера. Если устанавливаемое значение меньше текущей длины строки или больше максимального, генерируется исключение
Insert Вставка подстроки в заданную позицию
Length Длина строки (количество символов)
MaxCapacity Максимальный размер буфера
Remove Удаление подстроки из заданной позиции
Replасе Замена всех вхождений заданной подстроки или символа новой подстрокой или символом
ToString Преобразование в строку типа String

Пример обработки строк типа StringBuilder

 

using System;

using System.Text;

namespace ConsoleApplicationl

{ class Classl

{ static void Main()

{

Console.Write( "Введите зарплату: " );

double salary = double.Parse( Console.ReadLine());

StringBuilder a = new StringBuilder();

a.Append( "зарплата " );

a.AppendFormat( "{0, 6:C} - в год {1, 6:C}", salary, salary * 12 );

Console.WriteLine( a );

a.Replace( "p.", "тыс.$" );

Console.WriteLine( "А лучше было бы: " + a ); } } }

 

Емкость буфера не соответствует количеству символов в строке и может увеличиваться в процессе работы программы. Программист может уменьшить размер буфера с помощью свойства Capacity, чтобы не занимать лишнюю память.

 

Пример программы

#region Лаба 5 работа по строкам Сокращение ФИО до Фамилии + Инициалы

static void laba5()

{

Console.WriteLine("Работа со строками");

string fio="Nataly Nekk Serd",i="",o="";//Объявление ФИО

int j=0,s;

bool il=false,ol=false;

Console.WriteLine("Исходная ФИО: "+fio);

s= fio.IndexOf(" "); // Получаю длину фамилии

while (fio.Length > j)

{

 

if ((fio[j] == ' ')&(il== false)) // Получаем первую букву имени

{

i=fio[j+1].ToString();

il= true;

}

else if ((fio[j]==' ')&(ol==false)) // Получаем первую букву отчества

{

o=fio[j+1].ToString();

ol=true;

}

j++;

}

fio = fio.Remove(s)+" "+i+"."+o+".";//обрезаю ФИО до фамилии и присоединяю //инициалы

Console.WriteLine("После обработки: "+fio);// Вывожу на экран результат

}

#endregion


static void laba2()

{

 

char[] delimiterChars = {' '};//разделители

Console.WriteLine("Поехали делать вторую лабу");

string myString1 = "Nataly Nekk Serd"; //ФИО

Console.WriteLine(myString1);

string[] myS = myString1.Split(delimiterChars);//Разделение строки с //использованием разделителей на выходе будет массив

Console.WriteLine("Фамилия " + myS[0] + " Имя " + myS[1] + " Отчество " + myS[2]);

Console.WriteLine("Получилось: "+myS[0]+" "+myS[1].Remove(1)+"."+myS[2].Remove(1)+"."); На выходе ФИО плюс инициалы

}

#endregion








Дата добавления: 2015-08-21; просмотров: 547;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.