Не могу понять, что не так с моим решением. В качестве ключа использована строка - тут всё ок. При вводе пустой строки в консоль выводится содержание HashMap - тут тоже всё ок. Валидатор говорит, что Если вместо числа была введена пустая строка, то программа должна вывести содержимое HashMap согласно условию, но так оно у меня и работает. Помогите, пожалуйста.
package com.javarush.task.task10.task1019;
/*
Функциональности маловато!
Задача: Программа вводит с клавиатуры пару (число и строку) и выводит их на экран.
Новая задача: Программа вводит с клавиатуры пары (число и строку), сохраняет их в HashMap.
Пустая строка - конец ввода данных.
Числа могут повторяться.
Строки всегда уникальны.
Введенные данные не должны потеряться!
Затем программа выводит содержание HashMap на экран.
Каждую пару с новой строки.
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; ; i++) {
int id;
String name;
try {
id = Integer.parseInt(reader.readLine());
}
catch (Exception e) {
break;
}
try {
name = reader.readLine();
}
catch (Exception e) {
break;
}
map.put(name, id);
}
map.forEach((name, id) -> System.out.println("Id=" + id + " Name=" + name));
}
}