Помогите с с задачей

Мне нужно доработать программу на Java, в которой мы задаем фрукт и количество, например, груша - 3, яблоки - 5, апельсины - 1, бананы - 4. При запуске программы нас просят ввести фрукты, и после введенного знака = нам выводится количество фруктов (Бананы, яблоки, =, 9). Есть программа, которая считает сумму введенных чисел:

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = 
                new BufferedReader(
                        new InputStreamReader(System.in));
        int sum = 0;
        while (true) {
            String x = reader.readLine();
            if (x.equals("=")) {
                System.out.println(sum);
                break;
            }
            int y = Integer.parseInt(x);
            sum = sum + y;
        }
    }
}

Ответы (1 шт):

Автор решения: Alexandr

Думаю что-то вроде того (если я конечно правильно понял задачу):

package com.somepackage;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) throws Exception {
        Pattern pattern =
                Pattern.compile("^([А-Яа-я]+) - (\\d+)$");
        Map<String, Integer> fruits = new HashMap<>();
        BufferedReader reader =
                new BufferedReader(
                        new InputStreamReader(System.in));
        while (true) {
            String x = reader.readLine();
            if (x.equals("=")) {
                System.out.println(
                        String.join(", ", fruits.keySet()) + " - " +
                                fruits.values().stream().mapToInt(Integer::intValue).sum());
                break;
            }
            Matcher matcher = pattern.matcher(x);
            if (matcher.matches()) {
                String fruit = matcher.group(1);
                Integer count =
                        Integer.parseInt(
                                matcher.group(2));
                fruits.put(fruit, count);
            }
        }
    }
}

Пример:

Арбуз - 2
Дыня - 3
=
Дыня, Арбуз - 5
→ Ссылка