Входные данные помещаются в буфер только после того, как пользователь нажмет Введите , так что в действительности это всегда по очереди. Вы всегда должны согласовывать свой код с реальностью, поэтому всегда читайте пользовательский ввод в строках .
Этот полезный метод может быть полезен:
private static String read(Scanner scanner, String message, String regex) {
System.out.println(message);
String result = "";
while (true) {
result = scanner.nextLine();
if (result.matches(regex)) {
break;
}
System.out.println("Invalid input. " + message);
}
}
Вы бы назвали это так:
String letter = read(scan, "Please enter Letter #" + (index + 1)", "[A-Za-z]");
Метод read()
не вернется, пока не будет введена только одна буква, и вернет эту букву.