Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中递归的最长单词_Java_String - Fatal编程技术网

java中递归的最长单词

java中递归的最长单词,java,string,Java,String,可能重复: 我需要帮助查找java中最长的单词。。我想我的基本情况是对的,但是递归对我来说不起作用。。任何帮助都将不胜感激 public static String longestWord(String sentence) { int spaceIndex = sentence.indexOf(" "); if (spaceIndex == -1) { return sentence; } Strin

可能重复:

我需要帮助查找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;
        } 
    }

在else的情况下,您只需调整输出——现在它返回(并输出)句子的其余部分,而您希望它返回其余部分中最长的单词


要理解这个问题,请用一个例句和一些纸,手工做你的算法

  • 首先,尝试简单的句子(一个单词,两个单词)。它似乎在这里起作用
  • 接下来,用一个三个字的句子,比如
    “它对吗”
    ?。这里行吗?若否,原因为何?你需要改变什么

这几乎是正确的,但您在else块中返回了错误的值。

是否需要递归执行此操作?是的,这是da问题,我知道如何以其他方式执行此操作。。这很容易。我被这最后一部分卡住了老师的电子邮件是什么?我需要和他/她谈谈…@user647207,“u”和“wht”是什么意思?@Paulo-我想你的例子会有用,因为“what”是最长的。@MByD:谢谢,你说得对。我在这里想错了。你想返回
first
longestWord(rest)
之间最长的单词,但是如果
longestWord(rest)
更长,你实际返回什么?最长的单词..嗯,不完全是,你返回句子的其余部分…我不明白你在说什么我怎么能返回句子的其余部分我需要最长的单词..你可以,如果你错了
返回其余部分