Строки в C# (1 часть)

Строки в C# (1 часть)

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали, как работать с массивами в C#. В данной статье я бы хотел рассказать, о том, что такое строки в C#, какое они имеют значение и разобрать основные методы по работе с ними. Как по мне, так строки имеют самое важное (из всех типов) значение в языке C#. В отличие от множества других языков, где строки являются последовательностью символов, в C# строки — это объекты. Обычно при создании строковой переменной мы не используем ключевое слово new. Хотя можно создавать строки из последовательности символов. Пример:

static void Main(string[] args)
{
	string str1 = "Hellow WOrld!";
	char[] charArray = {'h','e','l','l','o','w' };
	string str2 = new string(charArray);
	Console.WriteLine(str1);
	Console.WriteLine(str2);
	Console.ReadLine();
}

Также, как и в массивах, к элементам строк можно обращаться по индексу:

Console.WriteLine(str1[1]); //e

Сразу отмечу, что таким способом нельзя заменить одну букву на другую. Таким образом (через индекс) можно только получить элемент строки.

Также у строк имеется свойство Length, которое возвращает длину строки:

Console.WriteLine(str1.Length); //13

В классе String существует большое количество методов, многих из которых перегружены (т.е. один и тот же метод может принимать различное количество параметров). Рассмотрим наиболее часто используемые методы для работы со строками:

1) Метод int CompareTo(string str2). Данный метод возвращает отрицательное значение, если вызывающая строка меньше строки str2, положительное — если вызывающая строка больше строки str2 и 0 — если строки равны между собой. Проверять равенство строк можно с помощью простого оператора "==". Давайте на примере рассмотрим метод CompareTo():

string str = "Первая строка";
Console.WriteLine(str.CompareTo("Рервая строка")); //-1
Console.WriteLine(str.CompareTo("Первая строка")); //0
Console.WriteLine(str.CompareTo("Оервая строка")); //1
Console.ReadLine();

Думаю на данном примере должен быть понятен принцип работы данного метода.

2) Метод int IndexOf(string str2). Данный метод ищет подстроку str2 в вызывающей строке и возвращает индекс первого вхождения. Есть также метод int LastIndexOf(string str2), который делает то же самое, но возвращает индекс последнего вхождения:

string str = "Первая строка первая";
Console.WriteLine(str.IndexOf("ерв")); //1
Console.WriteLine(str.LastIndexOf("ерв")); //15
Console.ReadLine();

3) Метод ToLower() приводит строку к прописному варианту (делает все буквы маленькими). Метод ToUpper() делает все буквы большими:

string str = "Первая сТрока Первая";
Console.WriteLine(str.ToLower());
Console.WriteLine(str.ToUpper());
Console.ReadLine();

4) Также существует очень полезный метод Trim(), который обрубает все пробелы, как в начале, так и в конце строки. Также можно обрубить только в начале (TrimStart()) или только в конце (TrimEnd()):

string str = "  Строка с пробелами     ";
Console.WriteLine("Строка без всех пробелов: {0}. Её длина = {1}", str.Trim(), str.Trim().Length);
Console.WriteLine("Строка без начальных пробелов: {0}. Её длина = {1}", str.TrimStart(), str.TrimStart().Length);
Console.WriteLine("Строка без конечных пробелов: {0}. Её длина = {1}", str.TrimEnd(), str.TrimEnd().Length);
Console.ReadLine();

5) Метод Contains() служит для того, чтобы проверить, есть ли в строке подстрока или символ:

string str = "Тестовая строка";
if (str.Contains("ест")) Console.WriteLine("да"); //передаем строку
if (str.Contains('а')) Console.WriteLine("да"); //передаем символ
Console.ReadLine();

Обращаю ваше внимание, что строка передаётся в двойных кавычках, в символ — в одинарных.

6) Метод Substring(start, length) позволяет взять из текущей строки определенную часть, начиная с индекса start. Если указан индекс length, то берется определенная последовать символов, начиная с start и заканчивая start + length. Если length не указан, то подстрока берется до конца исходной строки:

string str = "Тестовая строка";
Console.WriteLine(str.Substring(6)); //"ая строка"
Console.WriteLine(str.Substring(6, 4)); //"ая с"
Console.ReadLine();

Здесь я привел далеко не все методы, но самые необходимые.

Совет: прежде чем писать какой-то свой метод, всегда посмотрите, может быть есть уже стандартный метод, который реализует то, что вам нужно.

Домашнее задание: пусть имеется строка "Моя тестовая строка". Необходимо вывести меню, состоящее из двух пунктов. Первый пункт — "строка начинается с", второй пункт — "строка заканчивается на". При нажатии на каждый из этих пунктов пользователю предлагается ввести кусок строки. Допустим, если пользователь выбрал пункт "строка начинается с" и ввел "Моя" (регистр важен), то ему вывести сообщение "Всё верно!", а если нет — то "Вы ошиблись!".

В данной статье вы узнали, что такое строки в C#, как с ними работать и какие для этого существуют методы, и как их использовать. Это была первая статья по работе со строками в C#. В следующей статье мы разберем разбиение и сборку строк, а также рассмотрим методы Insert(), Remove() и Replace().

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *