我终于如愿以偿了。谢谢大家的帮助,我想强调这不是家庭作业。
public static void main(String[] args) {
String input = "Java is a programming language";
StringTokenizer st = new StringTokenizer(input);
System.out.print(longestWord(input));
}
public static String longestWord(StringTokenizer st) {
if (!st.hasMoreTokens()) {
return "";
} else {
String token = st.nextToken();
String longestInTheRest = longestWord(st);
if (token.length() > longestInTheRest.length()) {
return token;
} else {
return longestInTheRest;
}
最佳答案
以下是不完全正确的:
else if (token.length() > result.length()) {
执行上述语句时,result
总是""
。
函数应该做的是返回以下较大者:(1) token
的长度; (2) 递归调用返回的单词长度。
您可能还会考虑这两个 s.substring()
调用是否完全符合您的要求,或者是否可能存在问题。打印出 token
和 rest
(或在调试器中检查它们)可能会有用。
因为这看起来像是家庭作业,所以我就到此为止。
关于java - 递归最长词编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869693/