String тип данных си шарп

Работа со строками

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

В языке C# строковые значения представляет тип string , а вся функциональность работы с данным типом сосредоточена в классе System.String . Собственно string является псевдонимом для класса String. Объекты этого класса представляют текст как последовательность символов Unicode. Максимальный размер объекта String может составлять в памяти 2 ГБ, или около 1 миллиарда символов.

Создание строк

Создавать строки можно, как используя переменную типа string и присваивая ей значение, так и применяя один из конструкторов класса String:

string s1 = "hello"; string s2 = new String('a', 6); // результатом будет строка "aaaaaa" string s3 = new String(new char[] < 'w', 'o', 'r', 'l', 'd' >); string s4 = new String(new char[] < 'w', 'o', 'r', 'l', 'd' >, 1, 3); // orl Console.WriteLine(s1); // hello Console.WriteLine(s2); // aaaaaaa Console.WriteLine(s3); // world Console.WriteLine(s4); // orl

Конструктор String имеет различное число версий. Так, вызов конструктора

6 раз повторит объект из первого параметра, то есть фактически создаст строку «aaaaaa».

Еще один конструктор принимает массив символов, из которых создается строка

string s3 = new String(new char[] < 'w', 'o', 'r', 'l', 'd' >);

Третий использованный выше в примере конструктор позволяет создать строку из части массива символов. Второй параметр передает начальный индекс, с которого извлкаются символы, а третий параметр указывает на количество символов:

string s4 = new String(new char[] < 'w', 'o', 'r', 'l', 'd' >, 1, 3); // orl

Строка как набор символов

Так как строка хранит коллекцию символов, в ней определен индексатор для доступа к этим символам:

Читайте также:  Рекурсивный генератор перестановок python

public char this[int index]

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

string message = "hello"; // получаем символ char firstChar = message[1]; // символ 'e' Console.WriteLine(firstChar); //e Console.WriteLine(message.Length); // длина строки

Используя свойство Length , как и в обычном массиве, можно получить длину строки.

Перебор строк

Класс String реализует интерфейс IEnumerable, благодаря чему строку можно перебрать в цикле foreach как набор объектов char. Также можно с помощью других типов циклов перебрать строку, применяя обращение к символам по индексу:

string message = «hello»; for(var i =0; i < message.Length; i++) < Console.WriteLine(message[i]); >foreach(var ch in message)

Сравнение строк

В отличие от других классов строки сравниваются по значению их символов, а не по ссылкам:

string message1 = "hello"; string message2 = "hello"; Console.WriteLine(message1 == message2); // true

Многострочные строки

Начиная с C# 11 с помощью трех пар двойных кавычек можно оформить многострочный текст, в том числе с применением интерполяции:

Print(); PrintValue(«hello»); void Print() «»»; Console.WriteLine(text); > void PrintValue(string val) < string text = $""" """; //// или так //string text = $$""" // // // > //

Источник

Оцените статью