Итерация по строкам
Строки как последовательности символов.
«Итерация по строкам» — бесплатный урок C# Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.
Строки — это последовательности
Тип string представляет собой последовательность значений char, расположенных по порядку.
Это означает, что Вы можете пройти по строке в цикле и рассматривать по одному символу за раз. Перебор позволяет анализировать, подсчитывать или преобразовывать символы в тексте.
string text = "Hello";
// 'H', 'e', 'l', 'l', 'o'Свойство Length
У каждой строки string есть свойство Length, которое сообщает, сколько символов в ней содержится.
Вы будете использовать Length для управления циклами и определения последнего допустимого индекса — это всегда Length - 1.
class Program
{
static void Main()
{
string text = "Hello";
System.Console.WriteLine(text.Length);
}
}Цикл foreach
Самый простой способ обратиться к каждому символу — использовать цикл foreach.
На каждой итерации он предоставляет одно значение char, поэтому индекс не нужен. Это самый понятный вариант, если Вам не требуется знать позицию символа.
class Program
{
static void Main()
{
string text = "Hi!";
foreach (char c in text)
System.Console.WriteLine(c);
}
}Цикл for и индекс
Цикл for предоставляет индекс, который нужен, когда важна позиция символа.
Запускайте индекс от 0 до Length - 1 и считывайте каждый символ с помощью text[i].
class Program
{
static void Main()
{
string text = "Hi!";
for (int i = 0; i < text.Length; i++)
System.Console.WriteLine(text[i]);
}
}Индексация начинается с нуля
Символы нумеруются начиная с 0, поэтому первый символ находится по индексу 0.
В строке "Code" значение text[0] — это 'C', а text[3] — 'e'. Обращение к слишком большому индексу приводит к ошибке.
string text = "Code";
char first = text[0]; // 'C'
char last = text[3]; // 'e'Подсчёт определённых символов
Перебор позволяет подсчитывать символы, соответствующие условию.
Эта программа подсчитывает количество гласных в слове, проверяя каждый символ по небольшому набору.
class Program
{
static void Main()
{
string text = "banana";
int count = 0;
foreach (char c in text)
if (c == 'a') count++;
System.Console.WriteLine(count);
}
}Сочетание со вспомогательными методами char
Внутри цикла можно вызывать вспомогательные методы типа char, с которыми Вы познакомились ранее.
Например, можно подсчитать только цифры в строке, проверяя каждый символ с помощью char.IsDigit.
class Program
{
static void Main()
{
string text = "a1b2c3";
int digits = 0;
foreach (char c in text)
if (char.IsDigit(c)) digits++;
System.Console.WriteLine(digits);
}
}Создание преобразованного результата
Вы можете перебирать символы и одновременно собирать новый результат.
Этот цикл считывает каждый символ, переводит его в верхний регистр с помощью char.ToUpper и выводит его. Исходная строка никогда не изменяется, поскольку строки неизменяемы.
class Program
{
static void Main()
{
string text = "loud";
foreach (char c in text)
System.Console.Write(char.ToUpper(c));
}
}Строки неизменяемы
Нельзя изменить символ на месте с помощью text[0] = 'X' — это ошибка компиляции.
Строки неизменяемы, то есть их символы никогда не меняются. Чтобы получить другой текст, создайте новую строку вместо изменения старой.
string text = "cat";
// text[0] = 'b'; // not allowedОбратный порядок с помощью перебора
Перебирая символы от последнего индекса до 0, можно вывести их в обратном порядке.
Начните с индекса Length - 1 и уменьшайте его, пока он не достигнет 0.
class Program
{
static void Main()
{
string text = "abc";
for (int i = text.Length - 1; i >= 0; i--)
System.Console.Write(text[i]);
}
}Сравнение foreach и for
Используйте foreach, когда Вам нужен каждый символ, но не нужна его позиция.
Используйте цикл for, когда Вам нужен индекс, когда требуется пропускать символы или перебирать их в особом порядке, например в обратном. Оба цикла посещают одни и те же символы.
Быстрая проверка
Проверьте, насколько хорошо Вы поняли перебор строк.
Итоги
Тип string представляет собой последовательность символов, которую можно перебирать в цикле.
Используйте foreach для простого перебора, а цикл for с индексом — когда важна позиция. Свойство Length сообщает количество символов, индексы начинаются с 0, а строки неизменяемы, поэтому преобразование текста всегда создаёт новую строку.
Часто задаваемые вопросы
Урок «Итерация по строкам» бесплатный?
Да — полный текст урока «Итерация по строкам» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.
Чему я научусь в уроке «Итерация по строкам»?
Строки как последовательности символов. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Итерация по строкам»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Тип char
- Вспомогательные методы для char
- Итерация по строкам
- Создание строк