2013-02-03 23 views
1

最近我得到一个任务,要求我创建一个程序,它使用递归(Java)反转输入短语并输出它。例如,如果输入“This is a SENTENCE”,则该程序将输出“SENTENCE A is THIS”。递归地逆转一个短语

但是,该任务还说明,除了递归函数中的单个本地String变量之外,我不能使用任何存储或Java集合。因此,Java堆栈将保留输入中的所有单词。

我遇到的问题是正确实施递归。在本地声明一个String变量会覆盖之前存储在它中的任何值,所以我不确定如何在不中断递归调用的情况下实现局部变量。如果任何人都能指出我正确的方向,我会非常感激。谢谢!

+2

提示:reverse(“abcd”)= reverse(“bcd”)+“a”;反向(“a”)=“a”; –

回答

1

这看起来像正确的逻辑,除了else块需要返回一个值,而不是简单地将其存储在本地变量

return reversePhrase(scanner) + string; 

您可能还需要添加一个空格:

return reversePhrase(scanner) + " " + string;