【发布时间】:2017-07-20 02:34:25
【问题描述】:
我正在尝试使用递归逐字反转字符串。 (例如:“你好我的朋友”被反转为“朋友我的你好”)这是我试图为这个方法编写的代码。我尝试了多种类似的变体,但输出只是字符串的第一个或最后一个单词。我相信“损坏”的部分是第一个 if 语句,但我不太确定。
public static String reverse (String words) {
Scanner sc = new Scanner(words);
String backwards = "";
if (sc.hasNext()) {
String currentWord = sc.next();
reverse(sc.nextLine());
backwards = backwards + " " + currentWord;
} //end if
else {
backwards = words;
} //end else
return backwards;
}
我知道存在一些类似的问题,但他们的回答似乎无法帮助我理解我的错误。
谢谢!
【问题讨论】:
-
您没有保存递归调用的结果。
-
我去看看,谢谢! @JornVernee
-
我对 StringBuilder 的工作不多,我会研究一下! @OusmaneDiaw
-
@Gabbie 如果你愿意,我可以为你提供 stringbuilder 的解决方案。
-
@OusmaneDiaw 当然!我会很感激的:)
标签: java string recursion reverse