2014-11-02 15 views
1

Мне было интересно, как я могу это сделать.Входная строка сканера без пробелов?

Мне сказали использовать kb.nextLine() вместо kb.next(), но это просто приводит к пропуску ввода при запуске программы.

String address; 
student.setAddress(address = kb.nextLine()); 

Я тогда сказал, чтобы сделать это исправить:

student.SetAddress(String address = kb.nextLine()); 

, но я получаю сообщение об ошибке: String cannot be resolved into a variable" "Syntax error on token "address"

+3

Вы можете показать больше кода? Первая строка, которую вы опубликовали, должна работать, но без контекста трудно сказать, где проблема. – Eran

ответ

5

Ваш второй пример неправильно. Ваш первый пример выглядит нормально. Но не здорово. Я предполагаю, что вы использовали что-то вроде nextInt() или nextDouble(). Они оставляют новую линию, поэтому вам нужно ее использовать.

kb.nextLine(); // <-- consume empty trailing line. 
String address; 
student.setAddress(address = kb.nextLine()); //<-- reads line. 

Если вам не нужна локальная копия адреса,

kb.nextLine(); // <-- consume empty trailing line. 
student.setAddress(kb.nextLine()); //<-- reads line. 

Scanner.nextLine() Как говорит Javadoc,

Advances this scanner past the current line and returns the input that was skipped.