我有一个任务要求我创建一个 Java 程序,该程序使用递归反转输入短语并输出它。例如,给定输入“数据结构和算法”,程序将输出“算法和结构数据”。
限制之一是程序中不能使用存储或 Java 集合,除了单个本地 String 变量。
我无法理解如何从多行读取输入数据并在字符串上实现递归方法。我了解递归的一般概念,但是将其实现到 Java 中是一项更困难的任务。
如所要求的,此解决方案逐字“反转”字符串,其中单词仅由单个空格字符分隔。
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