Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


8.4.3. Основные методы класса StringBuilder

У класса StringBuilder методов значительно меньше, чем у класса String. По этой причине у класса есть основные методы, позволяющие выполнять такие операции над строкой как вставка, удаление и замена подстрок, но нет методов, подобных поиску вхождения, которые можно выполнять над обычными строками.

Технология работы обычно такова: конструируется строка класса StringBuilder; выполняются операции, требующие изменение значения; полученная строка преобразуется в строку класса String; над этой строкой выполняются операции, не требующие изменения значения строки.

Давайте чуть более подробно рассмотрим основные методы класса StringBuilder.

public StringBuilder Append(<объект>). К строке, вызвавшей метод, присоединяется строка, полученная из объекта, который передан методу в качестве параметра. Метод перегружен и может принимать на входе объекты всех простых типов, начиная от char и bool до string и long. Поскольку объекты

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

public StringBuilder Insert(int location,<объект>). Метод вставляет строку, полученную из объекта, в позицию, указанную параметром location. Метод Append является частным случаем метода Insert.

public StringBuilder Remove(int start, int len). Метод удаляет подстроку длины len, начинающуюся с позиции start.

public StringBuilder Replace(string str1,string str2). Все вхождения подстроки str1 заменяются на строку str2.

public StringBuilder AppendFormat(<строка форматов>, <объекты>). Метод является комбинацией метода Format класса String и метода Append. Строка форматов, переданная методу, содержит только спецификации форматов. В соответствии с этими спецификациями находятся и форматируются объекты. Полученные в результате форматирования строки присоединяются в конец исходной строки.

За исключением метода Remove, все рассмотренные методы являются перегруженными. В их описании дана схема вызова метода, а не точный синтаксис перегруженных реализаций. Приведем примеры, чтобы продемонстрировать, как вызываются и как работают эти методы.

//Методы Insert, Append, AppendFormat
StringBuilder strbuild = new StringBuilder();
string  str = "это это не ";
strbuild.Append(str);
strbuild.Append(true);
strbuild.Insert(4, false);
strbuild.Insert(0, "2*2=5 - ");
Console.WriteLine(strbuild);
string txt = "А это пшеница, которая в темном чулане хранится" + ", в доме, который построил Джек!";
StringBuilder txtbuild = new StringBuilder();
int num = 1;
foreach (string sub in txt.Split(',')) {
          txtbuild.AppendFormat(" {0}: {1} ", num++, sub);
}
str = txtbuild.ToString();
Console.WriteLine(str);

В этом фрагменте кода конструируются две строки. Первая из них создается из строк и булевых значений true и false. Для конструирования используются методы Insert и Append. Вторая строка конструируется в цикле с применением метода AppendFormat. Результатом этого конструирования является строка, в которой простые предложения исходного текста пронумерованы.

Обратите внимание, что сконструированная вторая строка передается в обычную строку класса String. Никаких проблем преобразования строк одного класса в другой класс не возникает, поскольку все объекты, в том числе, объекты класса StringBuilder, обладают по определению методом ToString.

Обратите внимание, как выглядят результаты работы.

Рисунок 31. Операции и методы класса StringBuilder

 



<< ПредыдущаяОглавлениеСледующая >>