java - 使用了扫描仪方法,但键盘输入未显示在命令窗口中
问题描述
我在我的代码中找不到错误。当我移动命令并连续要求输入两个字符串时,它可以工作,但是当我要求一个字符串,然后是一个整数,然后是一个字符串时,我没有从键盘得到第二个字符串的响应。
我已经剪切并粘贴了 String option = scan.nextLine(); 到不同的位置。它在整数输入之前有效,但在之后无效。我在命令窗口中看到输入用户输入的提示,但是当我按下键盘上的键时没有任何反应
import java.util.Scanner;
public class Assignment6 {
public static void main(String[] args) {
// Create scanner
Scanner scan = new Scanner(System.in);
// variables
int year;
int numQuestions;
String name;
// Create Geek
System.out.println("Please enter the geeks name: ");
name = scan.nextLine();
System.out.println("Please enter the number of questions the geek answers: ");
numQuestions = scan.nextInt();
System.out.println("\nPlease enter a command or type: ");
String option = scan.nextLine();
}
}
使用eclipse和java
解决方案
Scanner 类中的 nextInt() 方法获取数字本身的字符串,并且只获取数字本身。在您的情况下, char '\n' (换行符)仍在您的输入中,这就是为什么 nextline() 在您第二次使用它时无法正常工作的原因。
要解决此问题,您可以在 scan.nextInt() 调用后使用 System.in.read() 从标准输入中读取 1 个字符。通过这种方式,您可以从输入中清除换行符,并让 scan.nextLine() 正确读取下一行。