JavaRush /Курсы /C# SELF /Строки и текст: тип string, работа со строками

Строки и текст: тип string, работа со строками

C# SELF
2 уровень , 2 лекция
Открыта

1. Изучаем подробнее тип string

Тип string — один из самых используемых типов в C#. Возможно, вообще самый используемый. Это просто великолепный тип, ведь в таких переменных можно хранить текст. А еще, в отличие от типов int и double, у объектов типа string есть куча различных функций, и с помощью этих функций можно делать различные интересные вещи.

Кроме того, все объекты в C# (вообще все) могут быть преобразованы в тип string. Ну или, если сказать более корректно, все объекты в C# возвращают свое текстовое (строковое) представление. Мы будем еще не раз возвращаться к этому типу (очень уж он полезный и интересный), но сегодня познакомимся с его основами.

Создание переменных типа string

Тип string создан для хранения строк (текста). Чтобы создать в коде переменную, которая будет способна хранить текст, нужно воспользоваться командой:

string имя;
Создание переменной типа string

Где имя — это имя переменной.

Примеры:

Команда Описание
string name; Создается строковая переменная name
string message; Создается строковая переменная message
string text; Создается строковая переменная text

Так же, как с типами int и double, можно использовать краткую запись для создания нескольких переменных типа string:

string имя1, имя2, имя3;
Создание переменных типа string

2. Присваивание значений переменным типа string

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

имя = "значение";
Присваивание значения переменной типа string

А вот и первое отличие типа от уже изученных. Все значения типа string представляют собой строки текста и должны быть заключены в двойные кавычки.

Примеры:

Команда Примечание
string name = "Аня"; Переменная name содержит текст Аня
string city = "New York"; Переменная city содержит текст New York
string message = "Hello!"; Переменная message содержит текст Hello!

3. Инициализация переменных типа string

Как и в случае с типами int и double, переменные типа string можно инициализировать сразу при создании. Это, кстати, можно делать вообще со всеми типами в C#. Так что больше мы об этом говорить не будем.

string имя1 = "строка1", имя2 = "строка2";
Создание переменных типа string

Пример создания и инициализации переменных

string name = "Аня", city = "New York", message = "Hello!";

Менять можно только переменные со значением

C#-компилятор будет ругаться, если вы объявите переменную, не присвоив ей никакого значения и попробуете ее использовать.

Такой код работать не будет:

string name;
Console.WriteLine(name); // Переменная name не инициализирована. Программа не скомпилируется.
int a;
a++; // Переменная a не инициализирована. Программа не скомпилируется.
double x;
double y = x; // Переменная x не инициализирована. Программа не скомпилируется.

4. Конкатенация — склеивание строк

Есть очень интересная и простая вещь, которую можно делать со строками в C# — их можно склеивать. Такая операция называется конкатенация. Ну или чтобы легче запомнилось — Кон-Котэ-Нация. Хотя часто ее называют «склеивание строк» или даже просто «сложение строк».

Чтобы склеить две строки, нужно использовать знак +. Это очень просто:

"значение1" + "значение2"
Конкатенация двух строк

Примеры:

Команда Примечание
string name = "Аня" + "Аня"; name содержит строку АняАня
string city = "New York" + "Аня"; city содержит строку New YorkАня
string message = "Hello! " + "Аня"; message содержит строку Hello! Аня

Ну и, конечно, одновременно можно складывать много строк, а также складывать строки и переменные.

Примеры:

string name = "Аня";                // name содержит строку Аня
string city = "New York";           // city содержит строку New York
string message = "Hello!" + city + name + city; // message содержит строку Hello!New YorkАняNew York

5. Пустые строки

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

" "
Строка, содержащая один пробел

Кстати, если между кавычками совсем не оставить места (написать две двойные кавычки подряд), получится так называемая «пустая строка»:

""
Пустая строка

С одной стороны, она вроде бы и есть, а с другой, при ее выводе на экран ничего не выводится. И при склейке с другими строками ничего не происходит. Эдакий аналог нуля, только для строк.

6. Экранирование спецсимволов в строках

Вы уже знаете, что строки обрамляются двойными кавычками. Но что делать, если нужно вставить в строку кавычки? Если мы напишем кавычки в строке, разве компилятор не посчитает их как окончание строки?

Правильно. Посчитает. Поэтому кавычки внутри текста заменяются парой символов \". И код будет выглядеть вот так:

string quote = "Он сказал: \"Здравствуйте!\"";
Console.WriteLine(quote); // Он сказал: "Здравствуйте!"

На самом деле все еще немного хитрее. Символ \ считается специальным (управляющим) символом внутри строк. С его помощью можно задавать различные "непечатные символы" типа переноса строки, табуляции и т.п. Ну а чтобы задавать сам символ \ его нужно написать 2 раза.

Вот 4 самые распространённые комбинации:

Запись Значение
\n Перенос строки (newline)
\t Табуляция (отступ)
\\ Буквально \
\" Кавычки внутри строки

Пример:

string multiline = "Строка 1\nСтрока 2";
Console.WriteLine(multiline);

Выведет:

// Строка 1
// Строка 2

7. Интерполяция строк ($-строки)

C# — очень современный язык, и он позволяет легко и красиво вставлять значения переменных внутрь строки с помощью операции интерполяции — просто добавьте перед кавычками символ $, а внутри строки используйте фигурные скобки {}. Об этом вы уже знаете.

А вот чего вы еще не знаете, так это того, что внутри фигурных скобок можно использовать целые выражения и даже вызывать функции! Пример:

string name = "Оля";
int birthYear = 1999;

string info = $"Меня зовут {name}, мне {2025-birthYear} лет.";
Console.WriteLine(info); 	// Меня зовут Оля, мне 26 лет.

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

8. Собственные функции строк

У типа string есть собственные функции (их еще называют методами). Их очень много, и они облегчают жизнь программистам. Сегодня вы познакомитесь с некоторыми (самыми простыми) из них. Пример:

Функция Описание Пример результата
str.Length Длина строки "abc".Length → 3
str.ToUpper() В верхний регистр "abc".ToUpper() → "ABC"
str.ToLower() В нижний регистр "ABC".ToLower() → "abc"
str.Trim() Удалить пробелы по краям " x y ".Trim() → "x y"

Примеры работы с функциями строк

Все эти функции вызываются вот так: переменная.функция(...) .

Определить длину строки:

string name = "Андрей";
int length = name.Length;
Console.WriteLine(length); // 6, т.к. 6 букв

Перевести строку в верхний или нижний регистр:

string original = "Привет";
Console.WriteLine(original.ToUpper()); // ПРИВЕТ
Console.WriteLine(original.ToLower()); // привет

Удалить пробелы по краям (очень полезно при вводе с клавиатуры):

string messy = "   hello   ";
Console.WriteLine(messy.Trim()); // "hello"

Каждая такая функция возвращает новую строку, старая строка при этом не меняется.

2
Задача
C# SELF, 2 уровень, 2 лекция
Недоступна
Создание и инициализация строковых переменных
Создание и инициализация строковых переменных
2
Задача
C# SELF, 2 уровень, 2 лекция
Недоступна
Работа со строками и интерполяция
Работа со строками и интерполяция
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Evgeny Aseev Уровень 5
13 января 2026
string time = "Вечер"; string name = "Евгений"; time = $"Доброе {time}, {name}!"; Console.WriteLine(time); Это же тоже правильно? или...? )
Александр Уровень 22
8 сентября 2025
😎