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();
}
Above is my simple program and the following shows the exception that pops up.
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
nextIntdoesn’t swallow the end of line, that stays in the buffer. So when you hit 1enter,1is read into the firstscore, then the secondnameis set to an empty string.Then the parser tries to interpret
secondas anint, raising the exception.You’ll need to discard the current line after the
readInt.