Ментор: Программа должна выводить в консоль каждое имя и сумму всех его значений, все данные должны быть отсортированы в возрастающем порядке по имени.
import java.io.*;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Solution {
    public static void main(String[] args) throws IOException {
        FileReader fileReader = new FileReader(args[0]);
        BufferedReader reader = new BufferedReader(fileReader);
        TreeMap<String, Double> map = new TreeMap<>();
        Pattern pattern = Pattern.compile("(\\D+)\\s(.+)");
        Matcher matcher;
        String string;


        while(reader.ready()) {

            string = reader.readLine();
            matcher = pattern.matcher(string);
            while(matcher.find()) {

                double money = 0;
                boolean flag = false;
                for(Map.Entry<String, Double> m : map.entrySet()) {

                    if (m.getKey().equals(matcher.group(1))) {
                        money = m.getValue() + Double.parseDouble(matcher.group(2));
                    }
                    else
                        flag = true;

                }

                if(flag)
                    map.put(matcher.group(1), Double.parseDouble(matcher.group(2)));

                if(map.size() == 0)
                    map.put(matcher.group(1), Double.parseDouble(matcher.group(2)));

                if(money != 0)
                    map.put(matcher.group(1), money);
            }

        }

        for(Map.Entry<String, Double> m : map.entrySet())
                System.out.println(m.getKey() + " " + m.getValue());

        fileReader.close();
        reader.close();
    }

}