Разворот предложения через рекурсию в Java — пример с методом

Программа переворачивает строку (предложение) задом наперёд с помощью рекурсивной функции.

Пример: переворот предложения через рекурсию

public class Reverse {

  public static void main(String[] args) {
    String sentence = "Go work";
    String reversed = reverse(sentence);
    System.out.println("The reversed sentence is: " + reversed);
  }

  public static String reverse(String sentence) {
    if (sentence.isEmpty())
      return sentence;

    return reverse(sentence.substring(1)) + sentence.charAt(0);
  }
}

Вывод:

The reversed sentence is: krow oG

В программе выше используется рекурсивная функция reverse().

На каждом шаге мы добавляем (конкатенируем) результат следующего вызова reverse() к первому символу строки, полученному через charAt(0).

Предупреждение

Рекурсивный вызов должен идти до charAt(), тогда последние символы добавятся к левой части. Если поменять порядок, вы получите исходное предложение без изменений.

В конце мы доходим до пустой строки, и reverse() возвращает перевёрнутое предложение.

Примечание

Метод sentence.substring(1) возвращает часть строки sentence начиная с индекса 1 до конца строки.

Шаги выполнения:

Итерация

reverse()

substring()

reversedString

1

reverse(«Go work»)

«o Work»

result + «G»

2

reverse(«o Work»)

« Work»

result + «o» + «G»

3

reverse(» Work»)

«Work»

result + « « + «o» + «G»

4

reverse(«Work»)

«ork»

result + «W» + « « + «o» + «G»

5

reverse(«ork»)

«rk»

result + «o» + «W» + « « + «o» + «G»

6

reverse(«rk»)

«k»

result + «r» + «o» + «W» + « « + «o» + «G»

7

reverse(«k»)

«»

result + «k» + «r» + «o» + «W» + « « + «o» + «G»

Финал

reverse(«»)

«kroW oG»