Основным типом данных для хранения текстовой информации в языке C# является тип
string. Этот тип данных является встроенным и соответствует классу
System.String.
Инициализация строк
Для инициализации символьных строк используются
строковые литералы, то есть последовательности символов, заключенные в двойные кавычки. Кроме символов строковый литерал может содержать
Escape-последовательности – специальные символы, которые начинаются с обратного слеша (
\), после которого следует обозначение символа.
Перечень основных Escape-последовательностей приведен в таблице
Escape-последовательность | Значение |
\a |
Звонок (предупреждение) |
\b |
Удаление предыдущего символа |
\f |
Перевод страницы |
\n |
Новая строка |
\r |
Возврат каретки |
\t |
Горизонтальная табуляция |
\v |
Вертикальная табуляция |
\' |
Одиночная кавычка |
\" |
Двойная кавычка |
\\ |
Обратный слеш |
\? |
Вопросительный знак |
\xhhhh |
Символ Юникода в шестнадцатеричном формате, где hhhh – собственно код символа |
\udddd |
Символ Юникода (dddd) |
Escape-последовательности используются, например, для перевода строки или отступа в виде символа табуляции.
Если необходимо задать строку без Escape-последовательностей, то можно применить буквальный строковый литерал, обозначаемый префиксом
@, после которого размещается неизменяемая последовательность символов в двойных кавычках. Такой литерал может размещаться в коде на нескольких строчках, и это размещение сохранится при выводе.
Примеры инициализации объектов типа
string.
Кроме того, при формировании строк очень часто используется перегруженный оператор
+, который осуществляет слияние строк:
Класс
string содержит ряд конструкторов для инициализации строк, которые позволяют сформировать строку из массива символов типа
char или его части.
Также можно сформировать строку из последовательности одинаковых символов.
Основным свойством любой строки является свойство
Length, которое позволяет получить количество символов в строке.
По сути строка представляет собой массив символов, обратиться к каждому из которых можно с использованием индекса этого элемента.
Кроме того, класс
String обладает рядом методов, основные из которых будут рассмотрены ниже.
Сравнение и копирование строк
Метод
Compare() является статическим методом класса
String и позволяет посимвольно сравнить две строки или подстроки. Возвращаемое значение метода равно
0 в случае равенства строк. Пример использования этого метода:
Статический метод
Copy() позволяет создать копию строки, указанной в качестве аргумента.
Для проверки, содержат ли строки одинаковые последовательности символов, может использоваться метод
Equals(), имеющий как статический, так и нестатический вариант использования.
Пример использования методов:
Изменение регистра букв в строке
Для изменения регистра букв, используемых в строке, можно использовать методы
ToLower(), приводящие все буквы строки соответственно в верхнему или нижнему регистру.
Работа с подстрокой в строке
Для формирования подстроки может использоваться метод
Substring(), который формирует подстроку начиная с заданной позиции или начиная с заданной позиции указанной длины.
Кроме того, для работы с подстроками могут использоваться следующие методы:
-
Contains(подстрока) – проверяет, содержит ли данная строка подстроку, указанную в качестве аргумента, возвращает логическое значение true или false.
- IndexOf(подстрока) – возвращает индекс первого вхождения подстроки в данную строку. Если вхождений нет, возвращается -1.
- LastIndexOf(подстрока) – возвращает индекс последнего вхождения подстроки в данную строку. Если вхождений нет, возвращается -1.
- Replace(подстрока1, подстрока2) – заменяет все вхождения подстроки1 подстрокой2.
- StartsWith(подстрока) – проверяет, совпадает ли начало строки с указанной подстрокой.
- EndsWith(подстрока) – проверяет, совпадает ли конец строки с указанной подстрокой.
Пример использования указанных методов приведен ниже
Удаление и добавление подстрок
Для удаления и добавления подстрок из строки используются методы
- Remove(Позиция, ЧислоСимволов) — удаляет заданное число символов из строки начиная с указанной позиции. Если число символов не указано, то строка завершится на указанной позиции.
- Insert(Позиция, подстрока) – вставляет подстроку в строку начиная с указанной позиции.
Разделение и объединение строк
Для разделения строки на подстроки и сохранения их в массив используется метод
Split(), в качестве аргумента которому передается символ-разделитель. По умолчанию в качестве символа разделителя используется пробел.
Для объединения строк в единую строку используется статический метод
Join(), в качестве аргументов которому передаются строка-разделитель и массив строк, которые необходимо объединить через указанный разделитель.
Рассмотрим пример – посчитать количество слов во введенной строке.
Разделим строку на слова, посчитаем количество слов. Затем выведем массив слов и объединим слова снова в единую строку, используя в качестве разделителя строку
" | ".
Однако если слова разделяются не одним, а несколькими пробелами, то количество элементов в массиве
s2 будет больше, чем количество слов:
Метод
Split() содержит перегрузку, позволяющую указать, что пустые строки из формируемого массива следует удалить – опция
StringSplitOptions.RemoveEmptyEntries. Однако в этом случае в качестве разделителя необходимо указать массив символов или строк.
Кроме того, для удаления начальных и конечных символов- разделителей из строки можно использовать метод
Trim().
Форматирование объектов
Класс
String содержит статический метод
Format(String, Object), который позволяет перевести указанный объект в строковое представление в соответствии с форматом, указанным в форме строки в качестве первого аргумента. Однако различные типы значений имеют различные форматы представления, и это –
тема для отдельной статьи.
Закрепить использование строк Вы можете в разделе
Строки
курса
Алгоритмика
Автор: Вставская Елена Владимировна
Написать комментарий: