Строки и работа с текстом в C# (.NET 6): подробное руководство
Строки и работа с текстом в C#
Введение: Зачем нам работать с текстом?
Представь, что ты пишешь сообщение другу, создаешь название для новой игры или анализируешь текст песни. В программировании весь текст (слова, фразы, символы) хранится в специальном типе данных — строка (по-английски string).
Умение работать со строками позволяет программе:
- Читать то, что ввел пользователь
- Сравнивать слова (например, проверить пароль)
- Вырезать часть текста (как в задаче с хештегом)
- Считать количество символов или слов
- Переворачивать текст (как в задаче про обратное сообщение)
Основной синтаксис: Как создать строку
Строка в C# — это последовательность символов, заключенная в двойные кавычки "...".
using System;
class Program
{
static void Main()
{
// Создаем строки
string name = "SuperGadget X";
string hashtag = "#ЛучшийДеньДляПрограммирования";
string emptyString = ""; // Пустая строка
Console.WriteLine("Название гаджета: " + name);
Console.WriteLine("Хештег: " + hashtag);
Console.WriteLine("Длина строки name: " + name.Length + " символов");
}
}
Вывод программы:
Название гаджета: SuperGadget X
Хештег: #ЛучшийДеньДляПрограммирования
Длина строки name: 14 символов
Главные методы для работы со строками
У строк есть методы — это специальные команды, которые помогают с ними работать. Вот самые полезные:
1. Длина строки — .Length
Считает количество символов (включая пробелы).
string text = "Привет, мир!";
Console.WriteLine("Количество символов: " + text.Length); // 12
2. Извлечение части строки — .Substring(начало, длина)
Позволяет взять только часть текста. Нумерация символов начинается с 0!
string hashtag = "#ЛучшийДеньДляПрограммирования";
// Хотим взять только первые 7 символов (начиная с 0)
string shortHashtag = hashtag.Substring(0, 7);
Console.WriteLine(shortHashtag); // #Лучший
3. Поиск в строке — .IndexOf("текст")
Находит позицию (индекс) первого вхождения текста. Если не находит — возвращает -1.
string song = "Я помню чудное мгновенье";
int position = song.IndexOf("чудное");
Console.WriteLine("Слово 'чудное' начинается с индекса: " + position); // 7
4. Замена — .Replace("старое", "новое")
Заменяет одну часть текста на другую.
string text = "Я люблю Java";
string newText = text.Replace("Java", "C#");
Console.WriteLine(newText); // Я люблю C#
5. Разделение на слова — .Split("разделитель")
Разбивает строку на массив строк по указанному символу.
string songLyrics = "Hello world from C#";
string[] words = songLyrics.Split(' '); // Разделяем по пробелу
Console.WriteLine("Количество слов: " + words.Length); // 4
6. Преобразование регистра — .ToUpper() и .ToLower()
string message = "Привет, Мир!";
Console.WriteLine(message.ToUpper()); // ПРИВЕТ, МИР!
Console.WriteLine(message.ToLower()); // привет, мир!
Разбор типичных задач
Задача 1: Количество слов в песне
У нас есть текст песни. Нужно посчитать, сколько в нем слов.
using System;
class Program
{
static void Main()
{
Console.WriteLine("Введите текст песни:");
string song = Console.ReadLine();
// Разбиваем строку на слова по пробелам
string[] words = song.Split(' ');
Console.WriteLine("Количество слов в песне: " + words.Length);
}
}
Задача 2: Вырезать часть хештега
У нас есть длинный хештег. Нужно взять только первые 10 символов.
using System;
class Program
{
static void Main()
{
Console.WriteLine("Введите хештег:");
string hashtag = Console.ReadLine();
// Проверяем, что хештег длиннее 10 символов
if (hashtag.Length > 10)
{
string shortHashtag = hashtag.Substring(0, 10);
Console.WriteLine("Короткий хештег: " + shortHashtag);
}
else
{
Console.WriteLine("Хештег слишком короткий, оставляем как есть: " + hashtag);
}
}
}
Задача 3: Обратное сообщение
Нужно перевернуть строку задом наперед.
using System;
class Program
{
static void Main()
{
Console.WriteLine("Введите сообщение:");
string message = Console.ReadLine();
// Превращаем строку в массив символов
char[] charArray = message.ToCharArray();
// Переворачиваем массив
Array.Reverse(charArray);
// Создаем новую строку из перевернутого массива
string reversed = new string(charArray);
Console.WriteLine("Перевернутое сообщение: " + reversed);
}
}
Частые ошибки новичков
- Забывают, что индексация начинается с 0. Первый символ имеет индекс 0, второй — 1 и так далее.
Substring(0, 5)— это символы с 0 по 4. - Пытаются взять Substring с несуществующим индексом. Если строка длиной 5 символов, а вы пишете
Substring(3, 10), программа выдаст ошибку. Всегда проверяйте длину! - Путают кавычки. Строки всегда в двойных кавычках
" ", а отдельные символы — в одинарных' '. - Забывают, что Split возвращает массив. Количество элементов в массиве — это количество слов + количество разделителей. Если в строке 3 слова и 2 пробела, то
Splitвернет массив из 3 элементов.
Итоговый пример: Анализ названия NFT
Представь, что ты создаешь NFT-коллекцию. Ты придумал название, но хочешь проверить, не слишком ли оно длинное для площадки (максимум 20 символов). Также нужно убедиться, что название написано большими буквами.
using System;
class Program
{
static void Main()
{
Console.WriteLine("Введите название для NFT:");
string nftName = Console.ReadLine();
// Проверяем длину
if (nftName.Length > 20)
{
Console.WriteLine("Название слишком длинное! Нужно сократить.");
// Обрезаем до 20 символов
string shortName = nftName.Substring(0, 20);
Console.WriteLine("Предлагаю сократить до: " + shortName);
}
else
{
Console.WriteLine("Отличная длина! Название подходит.");
}
// Переводим в верхний регистр (для красоты)
string upperName = nftName.ToUpper();
Console.WriteLine("Название заглавными буквами: " + upperName);
// Считаем количество слов в названии
string[] words = nftName.Split(' ');
Console.WriteLine("Количество слов в названии: " + words.Length);
}
}
Пример работы программы:
Введите название для NFT:
Космический Кот 3000
Отличная длина! Название подходит.
Название заглавными буквами: КОСМИЧЕСКИЙ КОТ 3000
Количество слов в названии: 3
Теперь ты знаешь главные инструменты для работы с текстом в C#. Пробуй, экспериментируй и создавай свои программы!