-2

我有一个任务要求我创建一个 Java 程序,该程序使用递归反转输入短语并输出它。例如,给定输入“数据结构和算法”,程序将输出“算法和结构数据”。

限制之一是程序中不能使用存储或 Java 集合,除了单个本地 String 变量。

我无法理解如何从多行读取输入数据并在字符串上实现递归方法。我了解递归的一般概念,但是将其实现到 Java 中是一项更困难的任务。

4

1 回答 1

2

如所要求的,此解决方案逐字“反转”字符串,其中单词仅由单个空格字符分隔。

public class TestClass {

    public static String wordReverse(String s) {
        int idx = s.indexOf(" ");
        if (idx < 0) {
            // no space char found, thus, s is just a single word, so return just s itself
            return s;
        } else {
            // return at first the recursively reversed rest, followed by a space char and the first extracted word
            return wordReverse(s.substring(idx + 1)) + " " + s.substring(0, idx); 
        }
    }

    public static void main(String[] args) {
        System.out.println(wordReverse("DATA STRUCTURES AND ALGORITHMS"));
    }
}

我无法理解如何从多行读取输入数据

我不完全理解这一点,但如果您询问如何从标准输入读取用户输入,请查看System.in

于 2013-02-06T00:03:05.327 回答