Я пишу программу, которая использует класс Event, в котором есть экземпляр календаря, и описание типа String. В методе создания события используется сканер для ввода месяца, дня, года, часа, минуты и описания. Проблема, с которой я столкнулась, заключается в том, что метод Scanner.next() возвращает только первое слово перед пробелом. Поэтому, если ввод «Мой День рождения», описание этого экземпляра события просто «Мой».Java Scanner String input
Я провел некоторое исследование и обнаружил, что люди использовали Scanner.nextLine() для этой проблемы, но когда я пытаюсь это сделать, он просто пропускает прошлое, куда должен идти вход. Вот что часть моего кода выглядит следующим образом:
System.out.print("Please enter the event description: ");
String input = scan.nextLine();
e.setDescription(input);
System.out.println("Event description" + e.description);
e.time.set(year, month-1, day, hour, min);
addEvent(e);
System.out.println("Event: "+ e.time.getTime());
И это выход я получаю:
Please enter the event description: Event description
Event: Thu Mar 22 11:11:48 EDT 2012
Он пропускает мимо места для ввода строки описания, и, как следствие, описание (которое изначально установлено в пустое пространство - ""), никогда не изменяется.
Как это исправить?
Вы все равно не печатаете описание, так как вы знаете, что он не читает правильно? –
Можете ли вы включить пример ввода? – Michael
Я случайно пропустил строку кода, распечатав описание, но теперь я ее разместил. @ Майкл, я не знаю, чтобы рассказать вам о примере ввода, потому что я никогда не получаю приглашение ввести описание. – HolidayTrousers