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

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


8.4.2. Операции над строками

Над строками этого класса определены практически те же операции с той же семантикой, что и над строками класса String:

- присваивание (=);

- две операции проверки эквивалентности (= =) и (!=);

- взятие индекса ([]).

Операция конкатенации (+) не определена над строками класса StringBuilder, ее роль играет метод Append, дописывающий новую строку в хвост уже существующей.

Со строкой этого класса можно работать как с массивом, но, в отличие от класса String, здесь уже все делается как надо: допускается не только чтение отдельного символа, но и его изменение. Рассмотрим с небольшими модификациями наш старый пример:

public void TestStringBuilder() {
          //Строки класса StringBuilder
          //операции над строками
          StringBuilder s1 = new StringBuilder("ABC"),
          s2 = new StringBuilder("CDE");
          StringBuilder s3 = new StringBuilder();
          //s3= s1+s2;
          s3 = s1.Append(s2);
          bool b1 = (s1 == s3);
          char ch1 = s1[0], ch2 = s2[0];
          Console.WriteLine("s1={0}, s2={1}, b1={2}," + "ch1={3}, ch2={4}", s1, s2, b1, ch1, ch2);
          s2 = s1;
          b1 = (s1 != s2);
          ch2 = s2[0];
          Console.WriteLine("s1={0}, s2={1}, b1={2}," + "ch1={3}, ch2={4}", s1, s2, b1, ch1, ch2);
          StringBuilder s = new StringBuilder("Zenon");
          s[0] = 'L';
          Console.WriteLine(s);
} //TestStringBuilder

Этот пример демонстрирует возможность выполнения над строками класса StringBuilder тех же операций, что и над строками класса String. В результате присваивания создается дополнительная ссылка на объект, операции проверки на эквивалентность работают со значениями строк, а не со ссылками на них. Конкатенацию можно заменить вызовом метода Append. Появляется новая возможность - изменять отдельные символы строки. Для того чтобы имя класса StringBuilder стало доступным, в проект добавлено предложение using System.Text, ссылающееся на соответствующее пространство имен.

 



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