Бесплатный курс по java. Зарегистрируйтесь для отслеживания прогресса →

Java: Формирование строк в циклах

Ещё одно использование циклов – формирование строк. Подобная задача нередко встречается в программировании. Она сводится к обычной агрегации через конкатенацию.

Есть одна задача, крайне популярная среди людей, проводящих собеседования, это переворот строки. Её можно решить множеством разных способов, но именно посимвольный перебор считается самым базовым. Пример работы этой функции:

App.reverse("Hexlet"); // telxeH

Общая идея переворота состоит в следующем: нужно брать символы по очереди с начала строки и соединять их в обратном порядке. Звучит довольно просто. Давайте проверим:

public static String reverse(String str) {
    var i = 0;
    // Нейтральный элемент для строк это пустая строка
    var result = "";
    while (i < str.length()) {
        // Соединяем в обратном порядке
        result = str.charAt(i) + result;
        i = i + 1;
    }

    return result;
};

var name = "Bran";
App.reverse(name); // "narB"
// Проверка нейтрального элемента
App.reverse(""); // ""

Единственный возможно сложный момент в этом коде – прочувствовать, как собирается сама строка. Так как каждый следующий символ прикрепляется к результирующей строке слева, то, в конечном итоге, строка оказывается перевернута.

Задание

Реализуйте такой же метод reverse(), но выполняющий обход строки не с первого элемента по последний, а наоборот, от последнего к первому. Общая структура функции при этом останется такой же. Изменится начальный индекс, условие окончания цикла, сборка новой строки и формирование нового индекса в цикле.


Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе