В IDE код отрабатывает без ошибок.
Валидатор ругается на 19 строку (NullPointerException). Но почему?
Переменная s1 инициализирована, значит не ссылается на null.
package com.javarush.task.task10.task1019;
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<>();
while(true) {
String s1 = reader.readLine();
if (s1.isEmpty())
break;
else {
s1 = s1.trim();
boolean flag = true;
while (flag) {
try {
int id = Integer.parseInt(s1);
flag = false;
String name = reader.readLine();
while(map.containsKey(name) || name.isEmpty()) {
System.out.println("Введите уникальный ключ и не равный пустой строке:");
name = reader.readLine();
}
map.put(name, id);
}
catch (NumberFormatException e) {
System.out.println("Введите число:");
s1 = reader.readLine();
}
}
}
}
for (Map.Entry<String, Integer> pair : map.entrySet()) {
String name = pair.getKey();
int id = pair.getValue();
System.out.println(id + " " + name);
}
}
}