Суть в этом? Не звоните nextLine
- это сбивает с толку, как это работает.
Если вы хотите читать строки, используйте next()
вместо этого. Если вы хотите, чтобы значение целой строки вместо одного слова обновлялось, чтобы ваш сканер работал в «линейном режиме» вместо «космического режима»:
Scanner scan = new Scanner(System.in);
scan.useDelimiter("\r?\n");
// and now use as normal:
int i = scan.nextInt();
double d=scan.nextDouble();
String s=scan.next();
Это позволяет сканеру сканировать до символов новой строки , которые немного запутаны; в windows они \r\n
, но в других ОС они просто \n
, поэтому мы указываем: необязательно \r
, затем обязательный \n
.