|
|||
Работа с объектами класса StringBuilder.Задание 4. Работа с объектами класса StringBuilder. Класс string не разрешает изменять существующие объекты. Строковый класс StringBuilder позволяет компенсировать этот недостаток. Этот класс принадлежит к изменяемым классам и его можно найти в пространстве имен System.Text. Рассмотрим класс StringBuilder подробнее. Объекты этого класса объявляются с явным вызовом конструктора класса. Поскольку специальных констант этого типа не существует, то вызов конструктора для инициализации объекта просто необходим. Конструктор класса перегружен, и наряду с конструктором без параметров, создающим пустую строку, имеется набор конструкторов, которым можно передать две группы параметров. Первая группа позволяет задать строку или подстроку, значением которой будет инициализироваться создаваемый объект класса StringBuilder. Вторая группа параметров позволяет задать емкость объекта - объем памяти, отводимой данному экземпляру класса StringBuilder. Каждая из этих групп не является обязательной и может быть опущена. Примером может служить конструктор без параметров, который создает объект, инициализированный пустой строкой, и с некоторой емкостью, заданной по умолчанию, значение которой зависит от реализации. Над строками этого класса определены практически те же операции с той же семантикой, что и над строками класса String: - присваивание (=); - две операции проверки эквивалентности (==) и (!=); - взятие индекса ([]). Операция конкатенации (+) не определена над строками класса StringBuilder, ее роль играет метод Append, дописывающий новую строку в хвост уже существующей.
1. Создайте консольное приложение ExampleStringBuilder; 2. Объявите функцию TestStringBuilder(), демонстрирующую главные отличия класса StringBuilder от класса String: Методические указания: - объявите два объекта класса StringBuilder, используя конструктор: StringBuilder str1=new StringBuilder("String – example of StringBuilder"); - инициализируйте оба объекта; - приведите примеры изменения данных объектов; 3. Вызовите эту функция через функцию Main, проанализируйте полученные результаты;
У класса StringBuilder методов значительно меньше, чем у класса String, т.к. StringBuilder дает возможность изменять строки. По этой причине у класса есть основные методы, позволяющие выполнять такие операции над строкой как вставка, удаление и замена подстрок, но нет методов, подобных поиску вхождения, которые можно выполнять над обычными строками. Технология работы обычно такова: конструируется строка класса StringBuilder; выполняются операции, требующие изменение значения; полученная строка преобразуется в строку класса String; над этой строкой выполняются операции, не требующие изменения значения строки.
Основные методы StringBuilder:
public StringBuilder Append (<объект>) к строке, вызвавшей метод, присоединяется строка, полученная из объекта, который передан методу в качестве параметра; public StringBuilder Insert (int location,<объект>) вставляет строку, полученную из объекта, в позицию, указанную параметром location. 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, все рассмотренные методы являются перегруженными. В их описании дана схема вызова метода, а не точный синтаксис перегруженных реализаций. Приведу примеры, чтобы продемонстрировать, как вызываются и как работают эти методы:
4. В функции Main сконструируйте строку, используя методы Insert и Append. 5. Затем сконструируйте строку. Выведите ее на экран пронумеровав, каждое простое предложение входящее в эту строку. Методические указания: - в цикле foreach используйте метод AppendFormat (в качестве разделителя простых предложений в составе сложного примите ‘,’): txtbuild.AppendFormat(" {0}: {1} ", num++,sub); 6. Выведите на экран обе строки. Полученные результаты проанализируйте.
|
|||
|