可能重复:
How can I find the longest word in a string recursively?
我需要帮助找到java中最长的单词..我认为我的基本情况正确,但递归对我不起作用..任何帮助都会受到赞赏..
public static String longestWord(String sentence) {
int spaceIndex = sentence.indexOf(" ");
if (spaceIndex == -1) {
return sentence;
}
String firstWord = sentence.substring(0, spaceIndex);
String rest = sentence.substring(spaceIndex);
rest = rest.trim();
if (firstWord.length() >= longestWord(rest).length() ) {
IO.outputStringAnswer(firstWord);
return firstWord;
}
else {
IO.outputStringAnswer(rest);
return rest;
}
}
答案 0 :(得分:0)
你必须在else的情况下调整你的输出 - 现在它返回(并输出)句子的其余部分,而你希望它返回剩下的最长的单词。
要理解这个问题,请拿一个例句和一些文章,然后手工制作算法。
"Was it right"
之类的3个字的句子。它在这里有用吗?如果没有,为什么?你需要改变什么?答案 1 :(得分:0)
这几乎是正确的,但你在else块中返回了错误的值。