我有一个从用户那里获取输入的代码。需要循环来继续询问输入是否格式正确。只要输入正确,程序运行正常。 PS。用户输入错误输入时失败。
异常:java.util.Scanner.nextLine(未知来源)中的java.util.NoSuchElementException
如果我使用BufferedReader
,我就没有问题。
它只会失败Scanner
。
谢谢你的任何澄清。
public String getUserInput(String prompt) {
String inputLine = null;
Scanner sc = new Scanner(System.in);
while(true){
inputLine = null;
System.out.println(prompt + " ");
inputLine = sc.nextLine();
if(inputLine.length() == 2 &&
inputLine.charAt(0) >= 'a' && inputLine.charAt(0)<='g' &&
inputLine.charAt(1) >= '0' && inputLine.charAt(1)<='6'){
break;
}
else{
System.out.println("You entered your guess incorrectly.");
System.out.println("Please enter your guesses with ranges a through g and 0 through 6.");
}
}
sc.close();
return inputLine.toLowerCase();
}
答案 0 :(得分:0)
您可以通过以下方式检查是否存在下一行:sc.hasNext()
如果有,则返回true。您应该在致电sc.nextLine()