Если вы хотите игнорировать название магазина, тогда подойдет простой синтаксический анализатор:
Map<String, Integer> map = new HashMap<>();
String line;
String currentShop = null;
while ((line = reader.readLine()) != null) {
if (!line.matches(">.*,")) {
String[] listElement = line.split(",");
map.put(listElement[0], Integer.parseInt(listElement[1]));
}
}
Логика здесь такова, что если мы встречаем линию магазина, обозначенную >
, за которой следует название магазинаи запятая, тогда мы не пытаемся разобрать эту строку на карте.Кроме того, я предполагаю, что разделитель для строк данных на самом деле просто запятые, а не пробелы.Если вы ожидаете пробелы, вы можете вместо этого разделить что-то вроде \s*,\s*
.