We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
That's because the Scanner.nextInt method does not consume the last newline character of your input, and thus that newline is consumed in the next call to Scanner.nextLine.
Java Stdin and Stdout II
You are viewing a single comment's thread. Return to all comments →
That's because the Scanner.nextInt method does not consume the last newline character of your input, and thus that newline is consumed in the next call to Scanner.nextLine.
int option = input.nextInt(); input.nextLine(); // Consume newline left-over String str1 = input.nextLine();
Or, it would be even better, if you read the input through Scanner.nextLine and convert your input to integer using Integer.parseInt(String) method.
int option = 0; try { option = Integer.parseInt(input.nextLine()); } catch (NumberFormatException e) { e.printStackTrace(); } String str1 = input.nextLine();
You will encounter the similar behaviour when you use Scanner.nextLine after Scanner.next() or any Scanner.nextFoo method (except nextLine itself).