scan.nextLine();
вернет всю строку, запятые или нет.
Если это не то, что происходит, тогда проблема должна быть в другом месте, и вы должны предоставить больше кода.
Re: full code: Это все еще работает.В чем заключается ошибка, которую вы получаете / нежелательное поведение?
Мне кажется, что nextLine()
перехватывает символ конца строки из вашего предыдущего ввода.
Чтопроисходит:
- Предположим, вы вводите число, подобное
12.5
, и нажимаете enter
. - Буфер, из которого
Scanner
считывает данные, содержит 12.5\n
, где \n
символ новой строки. Scanner.nextDouble
читает только в 12.5
, а \n
остается в буфере. Scanner.nextLine
читает остальную часть строки, которая составляет всего \n
и возвращает пустую строку.Вот почему он пропускает к следующему входу: он уже читает «строку».
Что бы я сделал, чтобы исправить это:
System.out.print ("City, State: ");
String name2;
do{
name2 = scan1.nextLine();
}while( name2.trim().isEmpty() );
Что делает этот цикл, так этопродолжает читать следующую строку до тех пор, пока в ней не будет строки, отличной от пробела.