0Pricing
Java Academy · Урок

Циклы по символам

Обрабатывайте каждый символ в строке

«Циклы по символам» — бесплатный урок Java Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.

Строки состоят из символов

String — это последовательность символов. Каждый символ находится в позиции, называемой индексом, начиная с 0.

В строке "Java" индекс 0 содержит 'J', индекс 1 — 'a' и так далее. Цикл позволяет последовательно посетить каждый символ.

String word = "Java";
// indexes: 0=J 1=a 2=v 3=a

charAt получает один символ

Метод charAt(index) возвращает символ в заданной позиции строки String.

Индексы находятся в диапазоне от 0 до length() - 1. Запрос индекса за пределами этого диапазона вызывает ошибку.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        System.out.println(word.charAt(0));
        System.out.println(word.charAt(3));
    }
}

Какова длина строки

Метод length() возвращает количество символов в строке String.

Для "Java" он возвращает 4. Поскольку индексы начинаются с 0, последний допустимый индекс всегда равен length() - 1.

public class Main {
    public static void main(String[] args) {
        String word = "Hello";
        System.out.println(word.length());
    }
}

Цикл с индексом

Классический цикл for перебирает индексы от 0 до length() - 1, каждый раз вызывая charAt.

Так Вы получаете и позицию, и символ, что полезно, когда индекс имеет значение.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (int i = 0; i < word.length(); i++) {
            System.out.println(word.charAt(i));
        }
    }
}

Расширенный цикл for

Если индекс Вам не нужен, преобразуйте строку String в массив символов с помощью toCharArray() и используйте цикл по элементам.

Такой код легко читается: для каждого символа c в слове выполните нужное действие.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (char c : word.toCharArray()) {
            System.out.println(c);
        }
    }
}

Вывод в одну строку

Используйте System.out.print вместо println, чтобы символы оставались в одной строке.

Это удобно при восстановлении или преобразовании текста посимвольно.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (char c : word.toCharArray()) {
            System.out.print(c);
        }
        System.out.println();
    }
}

Преобразование каждого символа

Внутри цикла можно изменить каждый символ перед его использованием. Здесь по мере обработки мы переводим каждую букву в верхний регистр.

Мы создаём новую строку, потому что исходную строку нельзя изменить: строки неизменяемы.

public class Main {
    public static void main(String[] args) {
        String word = "java";
        String result = "";
        for (char c : word.toCharArray()) {
            result += Character.toUpperCase(c);
        }
        System.out.println(result);
    }
}

Цикл в обратном направлении

Чтобы развернуть строку, перебирайте индексы от последнего до 0, используя charAt.

Установите для i значение length() - 1 и уменьшайте его, пока оно не достигнет 0.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (int i = word.length() - 1; i >= 0; i--) {
            System.out.print(word.charAt(i));
        }
        System.out.println();
    }
}

Следите за границами

Всегда выполняйте цикл, пока i < word.length(), и никогда не используйте i <= word.length().

Выход за конец строки вызывает charAt с недопустимым индексом и приводит к исключению StringIndexOutOfBoundsException.

String word = "Hi";
// valid indexes: 0 and 1 only
// charAt(2) would crash

Поиск символа

Чтобы найти нужный символ, перебирайте символы и сравнивайте каждый с помощью ==. Здесь мы выводим индекс первого 'a'.

Как только найдём его, досрочно остановим цикл с помощью break.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (int i = 0; i < word.length(); i++) {
            if (word.charAt(i) == 'a') {
                System.out.println("Found at " + i);
                break;
            }
        }
    }
}

Чтение строки

Перебор символов лежит в основе задач поиска, замены и проверки.

Если Вам нужно внимательно изучить текст, стандартный инструмент — пройти циклом по каждому символу.

for (char c : "ab".toCharArray()) {
    System.out.println(c);
}

Быстрая проверка

Проверьте своё понимание перебора символов.

Итоги

Используйте charAt(i) в цикле с индексом или toCharArray() в цикле по элементам, чтобы посетить каждый символ.

Выполняйте цикл, пока i < length(), чтобы не выйти за границы, и создавайте новые строки, поскольку строки неизменяемы. Этот шаблон лежит в основе поиска и преобразования текста.

Часто задаваемые вопросы

Урок «Циклы по символам» бесплатный?

Да — полный текст урока «Циклы по символам» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.

Чему я научусь в уроке «Циклы по символам»?

Обрабатывайте каждый символ в строке Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Циклы по символам»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Примитивный тип char
  2. Вспомогательные методы для символов
  3. Циклы по символам
  4. Подсчёт и фильтрация символов
← Назад к Java Academy