Вывод со сканера числа, стоки. Если введены не они - Exception
С консоли человек должен сначала ввести число. Мы его проверяем. Если у нас не число, бросаем исключение и вводим снова. Если введено число, то переходим ко второй части задачи и теперь вводим текст. Суть проблемы в том, что если мы вводе в 1-й части строкового значения, 1-я часть автоматически игнорируется и сразу идет поиск по 2-й части - по тексту. Что я не понимаю?
Scanner scanner = new Scanner(System.in);
System.out.print("Введите число для посика: ");
int keyValueScanner;
while (scanner.hasNextInt()) {
try {
keyValueScanner = scanner.nextInt();
if (map.containsKey(keyValueScanner)) {
System.out.println("Введенный ключ " + keyValueScanner + " существует в map");
scanner.close();
break;
} else {
System.out.print("Введенный ключ " + keyValueScanner + " не существует в map, повторите ввод: ");
}
} catch (Exception e) {
System.out.println("Введено не число, повторите ввод: ");
scanner.nextInt();
}
}
System.out.print("Введите текст для посика: ");
while (scanner.hasNext()) {
try {
String scannerValueString = scanner.nextLine();
if (map.containsValue(scannerValueString)) {
System.out.println("Введенный текст " + scannerValueString + " есть в map");
scanner.close();
break;
} else {
System.out.print("Введенный текст " + scannerValueString + " не найден в map, повторите ввод: ");
}
} catch (Exception e) {
System.out.println("Введен не текст, повторите ввод: ");
scanner.nextLine();
}
}