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()

在每次迭代中,我们使用charAt(0)将下一个reverse()函数的结果添加到句子的第一个字符上(连接)。

递归调用必须在charAt()之前,因为这样最后一个字符才开始添加到左边。如果颠倒顺序,最终会得到原始句子。

最后,我们会得到一个空的sentence,并且reverse()返回反转后的句子。

注意sentence.substring(1)方法返回字符串sentence中从索引1到字符串末尾的部分。要了解更多,请访问Java String substring()

执行步骤
迭代 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("") - "" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG"

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战