Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java程序使用递归来反转句子

Java 实例大全

在此程序中,您将学习使用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()返回反向句子。

执行步骤
Iterationreverse()substring()reversedString
1reverse("Go work")"o Work"result + "G"
2reverse("o Work")" Work"result + "o" + "G"
3reverse(" Work")"Work"result + " " + "o" + "G"
4reverse("Work")"ork"result + "W" + " " + "o" + "G"
5reverse("ork")"rk"result + "o" + "W" + " " + "o" + "G"
6reverse("rk")"k"result + "r" + "o" + "W" + " " + "o" + "G"
7reverse("k")""result + "k" + "r" + "o" + "W" + " " + "o" + "G"
Finalreverse("")-"" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG"

Java 实例大全