Основы C#. Урок 27. Строки (класс StringBuilder)
На этом уроке мы рассмотрим другой класс для работы со строками - класс StringBuilder. Он принадлежит пространству имен System.Text
Этот класс работет быстрее, чем класс String, так как при изменении строки, созданной как экземпляр класса String, у нас создается каждый раз новый экземпляр класса, а старый уничтожается, при использовании же класса StringBuilder расходов на создание-уничтожение экземпляра класса нет - мы работаем всегда с одним экземпляром.
Обратите внимание, что для этого класса мы не можем использовать простое присваивание:
StringBuilder s="abc"; //Неправильно!
В этом случае мы долны действовать так:
StringBuilder s=new StringBuilder("abc"); //Правильно
У класса StringBuilder нет статических методов. Все его методы - динамические. Ниже перечислены основные свойства и методы класса StringBuilder:
Свойство Length. Возвращает длину строки. Пример использования:
int k=s.Length;
Свойство только для чтения MaxCapacity. Дает максимальное количество символов, которые можно записать в объект типа StringBuilder. Пример использования:
System.Console.WriteLine(s.MaxCapacity);
Метод Append. Прибавляет строку к существующей. Пример использования:
StringBuilder s1=new StringBuilder("Cogito "); StringBuilder s2=new StringBuilder("ergo "); s1.Append(s2); s1.Append("sum"); System.Console.WriteLine(s1); //Напечатается "Cogito ergo sum"
Метод Equals. Служит для сравнения двух строк. Возвращает true или false. Пример использования:
if(s1.Equals(s2)) System.Console.WriteLine("Строки равны"); else System.Console.WriteLine("Строки не равны");
Метод Insert. Вставляет символы в заданную позицию (Нумерация идет с нуля). Пример использования:
StringBuilder s1=new StringBuilder("abcde"); s1.Insert(2, "xyz"); System.Console.WriteLine(s1); //Напечатается "abxyzcde"
Метод Remove. Удаляет символы из строки. Пример использования:
StringBuilder s1=new StringBuilder("abcde"); s1.Remove(1, 2); System.Console.WriteLine(s1); //Напечатается "ade"
Певый параметр у Remove - это с какой позиции удаляем (нумерация с нуля), второй - сколько символов удаляем.
Метод Replace. Заменяет символы. Пример использования:
StringBuilder s=new StringBuilder("abcdeabcde"); s.Replace("abc", "ZZZ"); System.Console.WriteLine(s); //Напечатается "ZZZdeZZZde"