Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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

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 而nextLine()不等于“”_Java_String_Input_While Loop - Fatal编程技术网

Java 而nextLine()不等于“”

Java 而nextLine()不等于“”,java,string,input,while-loop,Java,String,Input,While Loop,当输入文件的下一行有一个字符串时,我试图进行循环,但我得到了一个错误。知道为什么吗 while( !((input = in.nextLine()).equals(""))){ ... } 输出: Enter file name: input1.txt evil live Exception in thread "main" This is a palindrome level This is a palindrome dog Not a palindrome java.util.NoS

当输入文件的下一行有一个字符串时,我试图进行循环,但我得到了一个错误。知道为什么吗

while( !((input = in.nextLine()).equals(""))){
   ...
}
输出:

Enter file name: input1.txt
evil live
Exception in thread "main" This is a palindrome
level
This is a palindrome
dog
Not a palindrome
java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1516)
    at Palindrome.main(Palindrome.java:41)
in.nextLine可能返回一个null,该值被分配给输入,您正试图在该输入上调用equals

使用hasNextLine确保您可以获得下一行。

in.nextLine可能返回一个null,该null被分配给输入,您正试图在该输入上调用equals


使用hasNextLine确保可以获得下一行。

文件结尾后没有行。当读取最后一行时,对nextLine的下一次调用将失败。用于防止出现这种情况。

文件结尾后没有行。当读取最后一行时,对nextLine的下一次调用将失败。用于防止出现这种情况。

您的代码不正确,因为输入可能会在不提供空行的情况下结束。在检查行是否为空之前,应先检查行是否可用:

while(in.hasNextLine() && !((input = in.nextLine()).equals(""))){
    ...
}

您的代码不正确,因为输入可能会在不提供空行的情况下结束。在检查行是否为空之前,应先检查行是否可用:

while(in.hasNextLine() && !((input = in.nextLine()).equals(""))){
    ...
}

按照循环的设置方式,它永远不会到达字符串,因为它会在到达文件末尾之前到达。应该是这样的

while (input.hasNextLine()) {
    ...
}

这意味着它将继续,直到文件没有下一行。

按照循环的设置方式,它将永远不会到达字符串,因为这样做之前它将到达文件的末尾。应该是这样的

while (input.hasNextLine()) {
    ...
}
这意味着它将继续,直到文件没有下一行。

与null进行比较,并与文件结尾进行检查

作为

或者尝试:

  while(in.hasNextLine(){
       input = in.nextLine();
        if(input != null && !(input.equals(""))){
          ........
        }
  }
和null进行比较,以检查文件的结尾

作为

或者尝试:

  while(in.hasNextLine(){
       input = in.nextLine();
        if(input != null && !(input.equals(""))){
          ........
        }
  }

尝试使用这种类型的东西,如果需要,捕获异常:

input = in.nextLine();
while( !(input.equals(""))){
...
}

如果它抛出错误,则设置一个try…catch循环

尝试使用这种类型的东西,如果需要,捕获异常:

input = in.nextLine();
while( !(input.equals(""))){
...
}
如果它抛出错误,那么设置一个try…catch循环

可能是您需要的

while(in.hasNextLine()){
    input = in.nextLine();
}
也许你需要

while(in.hasNextLine()){
    input = in.nextLine();
}

扫描仪在输入不足时引发异常。您似乎认为它将返回一个长度为零的字符串


您是否使用扫描仪一次读取一行文件?这不是它的目的。您可能需要查看BufferedReader。

扫描仪在输入不足时抛出异常。您似乎认为它将返回一个长度为零的字符串


您是否使用扫描仪一次读取一行文件?这不是它的目的。你可能想看看BufferedReader。

我试过了,但我得到了:输入文件名:input1.txt邪恶生活这是回文级别这是回文狗而不是线程main java.util.NoSuchElementException中的回文异常:在java.util.Scanner.nextLineScanner.java:1516在palindrome.mainPalindrome.java:41中找不到行吗指的是我的最新答案?如果是,请帮我一个忙。在in.nextLine失败之前放置一个调试器并检查其值,然后与我共享。我添加了另一种方法。如果行得通,请告诉我。如果没有,,请让我知道起始行的异常。我尝试了这个,但我得到了这个:输入文件名:input1.txt邪恶生活这是回文级别这是回文狗而不是主线程java.util.NoSuchElementException中的回文异常:在java.util.Scanner.nextLineScanner.java:1516处找不到任何行java:41你指的是我更新的答案吗?如果是,请帮我一个忙。在in.nextLine失败之前放置一个调试器并检查其值,然后与我共享。我添加了另一种方法。如果行得通,请告诉我。如果没有,请让我知道发起行的例外情况。