Программа не проходит по условию: "Если вместо числа была введена пустая строка, то программа должна вывести содержимое HashMap согласно условию".
Но все именно так и работает, если не ввести число, то программа завершит свое исполнение и выведет мапу. на экран. Так же произойдет и со строкой.
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
HashMap<Integer, String> map = new HashMap<>();
int a;
String s;
while (true) {
try {
a = Integer.parseInt(reader.readLine());
} catch (NumberFormatException ex) {
break;
}
s = reader.readLine();
if (s.equals(""))
break;
else
map.put(a, s);
}
map.forEach((k, v) -> System.out.println(k + " " + v));
}
}