Ментор: Программа должна выводить в консоль каждое имя и сумму всех его значений, все данные должны быть отсортированы в возрастающем порядке по имени.
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();
}
}package com.javarush.task.task19.task1919;
/*
Считаем зарплаты
*/
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();
}
}