String[] names=new String[4];
int[] scores=new int[4];
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter 4 strings and integers:");
for(int i=0;i<4;i++){
names[i]=keyboard.nextLine();
scores[i]= keyboard.nextInt();
}
上面是我的简单程序,下面显示了弹出的异常。
Enter 4 strings and integers:
first
1
second
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Q2.main(Q2.java:15)
Java Result: 1
答案 0 :(得分:10)
nextInt
不会吞下保留在缓冲区中的行尾。因此,当您点击 1 输入时,1
将被读入第一个score
,然后第二个name
被设置为空字符串。
然后解析器尝试将second
解释为int
,从而引发异常。
您需要在readInt
之后丢弃当前行。