Работа с типами string и StringBuilder — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Работа с типами string и StringBuilder

2017-11-27 272
Работа с типами string и StringBuilder 0.00 из 5.00 0 оценок
Заказать работу

Тип string, предназначенный для работы со строками символов в кодировке Unicode, является встроенным типом С#. Ему соответствует базовый класс System.Stгing библиотеки.NET.

Создать строку можно несколькими способами:

· string s; // инициализация отложена

· string s = "stroka"; // инициализация строковым литералом

· string s= new string(‘ ‘, 20); / / конструктор создает строку из 20 пробелов

· char[] а ={ '1', '2', '3' }; // массив для инициализации строки

string s = new string(a); // создание из массива символов.

Для строк определены следующие операции:

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

· проверка на равенство (==);

· проверка на неравенство (!=);

· обращение по индексу ([]);

· сцепление (конкатенация) строк (+).

Несмотря на то что строки являются ссылочным типом данных, на равенство и неравенство проверяются не ссылки, а значения строк. Строки равны, если имеют одинаковое количество символов и совпадают посимвольно.

Обращаться к отдельному элементу строки по индексу можно только для получения значения, но не для его изменения. Это связано с тем, что строки типа string относятся к так называемым неизменяемым типам данных*. Методы, изменяющие содержимое строки, на самом деле создают новую копию строки. Неиспользуемые «старые» копии автоматически удаляются сборщиком мусора. В классе System.String предусмотрено множество методов, полей и свойств, позволяющих выполнять со строками практически любые действия. Примеры:

· Compare (статический метод) – сравнение двух строк в алфавитном порядке.

· Concat (статический метод) – конкатенация строк (сцепление произвольного количества строк).

· IndexOf (метод) – определение индексов вхождения подстроки в строку.

· Length (свойство) – длина строки (количество символов).

· Copy (статический метод) – создание копии строки.

Пример легко написать самостоятельно.

*** форматирование строк

Console.WriteLine(“ a = {0, 6: C} b = {1, 2: X} ”, a, b); // 1

В операторе 1 неявно применяется метод Format, который заменяет

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

{n [, m [:спецификатор_формата [число] ] }

Здесь n — номер параметра. Параметры нумеруются с нуля, нулевой параметр заменяется значением первой переменной из списка вывода, первый параметр — второй переменной и т. д. Параметр m определяет минимальную ширину поля, которое отводится под выводимое значение. Если выводимому числу достаточно меньшего количества позиций, неиспользуемые позиции заполняются пробелами.

Если числу требуется больше позиций, параметр игнорируется.

Спецификатор формата, как явствует из его названия, определяет формат вывода значения. Например, спецификатор С (Currency) означает, что параметр должен форматироваться как валюта с учетом национальных особенностей представления, а спецификатор X (Hexadecimal) задает шестнадцатеричную форму представления

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

Примеры применения пользовательских шаблонов форматирования

Число Шаблон Вид

1,243 00.00 01,24

1,243 #.## 1,24

0,1 00.00 00,10

0,1 #.##,1

Пользовательский шаблон может также содержать текст, который в общем случае

заключается в апострофы.

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

StringBuilder a = new StringBuilder();

StringBuilder b - new StringBuilder("qwerty");

StringBuilder с = new StringBuilder(100);

StringBuilder d = new StringBuilder("qwerty". 100');

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

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

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

Элементы класса:

• Append – метод, добавление в конец строки;

• Capacity – свойство, получение или установка емкости буфера;

• Insert – метод, вставка подстроки в заданную позицию;

• Length – свойство, длинна строки;

• ToString – метод, преобразование в строку типа string.

using System;

using System.Text;

namespace ConsoleApplicationl

{ class Class1

{ static void Main()

{

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

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

StringBuilder a - new StringBuilder();

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

a.AppendFormat("{0, 6:C} - вгод {1, б:С}",

salary, salary * 12);

Console.WriteLine(a);

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

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

}

}

}

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


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

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.016 с.