Пропускает ввод строки в Java

import java.util.Scanner;

public class Program    {
    public static void main(String[] args){

        Scanner in = new Scanner(System.in);
        int c = 0;

        System.out.print("Input number 1: ");
        int a = in.nextInt();

        System.out.print("Input Name: ");
        String name = in.nextLine();

        System.out.print("Input number 2: ");
        int b = in.nextInt();


    }
}

Код запускается но после ввода номера 1, он пропускает имя и сразу просит ввести номер 2. Вот это вводит:

Input number 1: 5
Input Name: Input number 2: 

Как это можно решить?


Ответы (1 шт):

Автор решения: had0uken

Исправленный вариант:

Scanner in = new Scanner(System.in);
    int c = 0;

    System.out.print("Input number 1: ");
    int a = in.nextInt();
    in.nextLine();

    System.out.print("Input Name: ");
    String name = in.nextLine();

    System.out.print("Input number 2: ");
    int b = in.nextInt();

У вас при считывании переменной а вы после того как вводите число и жмете Enter передаете кроме самого числа и символ перевода каретки "\n", он и записывается в "name". Строка кода

 in.nextLine();

"съедает" лишний символ перевода каретки и программа работает правильно

→ Ссылка