我是Java新手,无法弄清楚我的代码出错了。该程序应该用逗号将单个字符串作为单个字符输入,并将它们打印为两个不带逗号的单独单词。如果没有逗号,它应该打印出错误信息。输入“q”将退出程序。当输入“q”时,它可以很好地工作。它也可以在没有逗号,但输出后增加了以下错误信息:Java没有这样的元素异常
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at ParseStrings.main(ParseStrings.java:16)
而且,当有一个逗号输入该程序将无法正常工作,但是当我注释掉部分关于代码中的逗号,它工作但给出了上述错误信息。任何帮助显示我的错误将不胜感激。下面是代码:
import java.util.Scanner;
public class ParseStrings {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String userInput = "";
String firstWord = "";
String secondWord = "";
boolean inputDone = false;
boolean noComma = false;
System.out.println("Enter input string or q to quit: ");
while (!inputDone) {
userInput = scnr.nextLine();
if (userInput.equals("q")) {
System.out.println(" Exiting.");
inputDone = true;
}
else {
while (!noComma) {
if (userInput.indexOf(',') < 0) {
System.out.println("Error: No comma in string");
noComma = true;
}
else {
firstWord = userInput.substring(0, userInput.indexOf(','));
firstWord = firstWord.trim();
secondWord = userInput.substring(userInput.indexOf(',') + 1, userInput.length());
secondWord = secondWord.trim();
System.out.println("First word: " + firstWord);
System.out.println("Second word: " + secondWord);
System.out.println();
}
}
}
}
return;
}
}
您是否尝试过使用您的调试程序逐步调试代码以在发生错误时评估程序状态? – dave
当我运行这段代码时,我没有得到你描述的错误信息 - 我只是得到一个无限循环。 –
戴夫,我没有通过代码。这可能应该是我第一个故障排除步骤。我从现在开始。谢谢! – TedC