Skipping nextLine() after use nextInt()?

Thats because the Scanner#nextInt method does not read the last newline character of your input, and thus that newline is consumed in the next call to Scanner#nextLine



Either fire a blank Scanner#nextLine call after Scanner#nextInt to consume newline


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) {



String str1 = input.nextLine();

You will encounter the similar behaviour when you use Scanner#nextLine after Scanner#next() or any Scanner#nextXXX method for except nextLine itself.