English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 프로그램에서는 Java에서 재귀를 사용하여 주어진 문장을 반전하는 방법을 배웁니다.
public class Reverse { public static void main(String[] args) { String sentence = "Go work"; String reversed = reverse(sentence); System.out.println("뒤집힌 문장은: ", + reversed); } public static String reverse(String sentence) { if (sentence.isEmpty()) return sentence; return reverse(sentence.substring(1)) + sentence.charAt(0); } }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
뒤집힌 문장은: krow oG입니다.
위 프로그램에서는 reverse() 재귀 함수가 있습니다.
각 반복마다 charAt(0)를 사용하여 다음 reverse() 함수의 결과를 문장의 첫 번째 문자에 추가(연결)합니다.
재귀 호출은 charAt()보다 먼저 수행해야 합니다. 왜냐하면 이렇게 하면 마지막 문자가 왼쪽에 추가될 것입니다. 반대로 순서를 뒤집으면 원래 문장을 얻게 됩니다.
마지막으로, 빈 문장으로 끝내면 reverse()는 반대 방향의 문장을 반환합니다.
Iteration | 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" |
Final | reverse("") | - | "" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG" |