我试图在输入文件的下一行包含一个字符串的情况下进入循环,但是我收到了错误消息。知道为什么吗?

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)

最佳答案

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

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

10-08 18:39