#java #next
#java #Далее
Вопрос:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// printing menu
System.out.println(menu);
boolean quit = false;
int selection;
do {
// next user input (of integer type) will be stored in the variable selection
selection = Integer.parseInt(scanner.next());
switch (selection) {
case 1:
System.out.println("Please enter a new record as John Michael West Doe, 574 Pole ave, St. Peter, MO, 63303, 3142752000");
scanner.useDelimiter(",");
Person[] people = new Person[0];
while (scanner.hasNext()) {
String fullName = scanner.next();
String street = scanner.next();
String city = scanner.next();
String state = scanner.next();
String zipC = scanner.next();
String phoneN = scanner.next();
System.out.println(fullName);
}
break;
case 2:
// method to delete record - remove
break;
case 3:
// search by telephone number
break;
case 4:
// find record by first name
break;
case 5:
// find record by last name
break;
case 6:
// update a record
break;
case 7:
quit = true;
break;
default:
System.out.println("Invalid");
}
} while (selection != 7);
}
Привет, в настоящее время я работаю над случаем 1 — моя проблема в том, что мне приходится вводить код дважды, чтобы он принял его и распечатал строку FullName..
Даже в начале, когда я делаю выбор и нажимаю 1 и enter, мне приходится вводить другую клавишу, прежде чем появится строка «пожалуйста, введите новую запись …..».
Я только что узнал о том, что делает nextInt и как он оставляет новую строку, поэтому я проанализировал его, чтобы использовать scanner.next();
Я просто пытаюсь понять, где происходит сбой.
Спасибо.
Ответ №1:
Разница между scanner.nextInt()
и Integer.parseInt(scanner.next())
равна нулю, за исключением типов ошибок, которые выдаются, если следующий токен во входном потоке не является целым числом. Вы, должно быть, неправильно поняли несколько вещей.
Я вставил ваш код в файл, скомпилировал его, запустил и не могу воспроизвести ваше наблюдаемое поведение «Я должен дважды нажать enter». Я просто нажимаю enter один раз, и Please enter...
показывает.
В вашем коде нет ничего плохого. По крайней мере, ничего, что объясняло бы, почему вам нужно вводить здесь дважды.
Комментарии:
1. Спасибо за разъяснение. Когда я нажимаю одну клавишу, я должен нажать другую клавишу, прежде чем появится сообщение «пожалуйста, введите ..». Затем, когда я вставляю «Имя, адрес и т.д.» В показанном формате, мне приходится вставлять второй раз, прежде чем он выведет его на консоль. Idk, что происходит.
2. Вы должны нажать 1, а затем ввести, и затем ‘1’ принимается ‘nextInt’. Вы не можете использовать командную строку (легко), чтобы иметь систему, в которой вы просто нажимаете 1, и код немедленно запускается. Создайте графический интерфейс (с помощью swing или javafx), если вы действительно этого хотите.