использовался метод сканера, но клавиатура не отображается в окне команд - PullRequest
0 голосов
/ 23 июня 2019

Я не могу найти ошибку в своем коде.Это работает, когда я перемещаю команды и запрашиваю два строковых ввода подряд, но когда я запрашиваю строку, затем целое число, а затем снова строку, я не получаю ответа от клавиатуры для второй строки.

Я вырезал и вставил параметр String = scan.nextLine ();в разные места.это работает до целочисленного ввода, но не после.Я вижу подсказку в окне командной строки для ввода пользовательского ввода, но когда я нажимаю клавиши на клавиатуре, ничего не происходит

import java.util.Scanner;

public class Assignment6 {

    public static void main(String[] args) {

        // Create scanner
        Scanner scan = new Scanner(System.in);

        // variables
        int year;
        int numQuestions;
        String name;


        // Create Geek
        System.out.println("Please enter the geeks name: ");
        name = scan.nextLine();

        System.out.println("Please enter the number of questions the geek answers: ");
        numQuestions = scan.nextInt();

        System.out.println("\nPlease enter a command or type: ");
        String option = scan.nextLine();

    }

}

Использование eclipse и java

1 Ответ

0 голосов
/ 23 июня 2019

Метод nextInt () в классе Scanner принимает строку самого числа и только само число. В вашем случае символ '\ n' (новая строка) все еще находится на вашем входе, и поэтому nextline () не будет работать должным образом во второй раз, когда вы его используете.

Чтобы исправить это, вы можете прочитать 1 символ из стандартного ввода, используя System.in.read () после вашего вызова scan.nextInt (). Таким образом, вы очищаете символ ввода новой строки от вашего ввода и позволяете scan.nextLine () правильно читать следующую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...