使用递归反转句子的 Java 程序
在本程序中,您将学习使用 Java 中的递归循环反转给定的句子。
要理解此示例,您应该具备以下 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()
之前,因为这样最后一个字符将开始添加到左侧。如果您颠倒顺序,您将得到原始句子。
注意: sentence.substring(1)
方法返回字符串的从索引 1 开始到字符串的结尾的子串。
执行步骤
Iteration | reverse() | substring() | Reversed String |
---|---|---|---|
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("") |
- |
"" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG" |