Использование hasNextLine в Java не будет читать NextLine после NextInt - PullRequest
0 голосов
/ 17 сентября 2009

Я пытаюсь заставить это работать

 System.out.println("Please enter what SOCKET NUMBER you" + 
"wish to connect to");   
            int sockname = Integer.parseInt(inFromUser.nextLine());

   System.out.println("Please enter what HOSTNAME you" + 
"wish to connect to");
   String hostname = inFromUser.nextLine();

Проблема в том, что я не могу получить имя хоста равным любому вводу пользователя. Я думал, что это связано с hasNext или вариант этого, но я не уверен. Есть мысли?

Ответы [ 2 ]

3 голосов
/ 17 сентября 2009

После nextLine () во входном буфере может быть "\ n", поэтому следующий вызов просто читает его и возвращает. Вам нужно очистить буфер после прочтения int

inFromUser.skip("\\n+");
1 голос
/ 17 сентября 2009

java.io.BufferedReader имеет метод readLine (). Используйте это. Если вы используете Scanner.nextLine (), вы должны знать, что если ваша позиция находится перед новой строкой, вы получите пустую строку. Однако следующая nextLine действительно вернет полную строку текста (так же, как readLine).

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