我要求用户输入,但我希望它遵循enter:提示并且在同一行。
我的代码根据' ok'
输出结果ok
enter: ok
ok
我想在输入后启动用户输入: - 希望这样做...
enter: ok
ok
这是我的代码:
private static Scanner u = new Scanner(System.in);
try{
while(u.hasNext() && !u.equals("exit")) {
System.out.printf("enter: ");
usrInput = u.next();
System.out.printf(usrInput + "\n");
System.out.println(findClosestMatch(usrInput.toLowerCase()));
}
} catch(NullPointerException e) {
System.out.println("Error - NullPointerException");
}
答案 0 :(得分:2)
u.hasNext()
在提示之前阻止输入。这是不必要的,因为之后调用u.next()
会阻止。而且你将实际的Scanner
对象与“退出”进行比较,这将永远不会成立。试试这个:
while (true) {
System.out.print("enter: ");
if (!u.hasNext() || (usrInput = u.next()).equals("exit")) {
break;
}
System.out.println(usrInput);
System.out.println(findClosestMatch(usrInput.toLowerCase()));
}