Коллеги, привет.
Прошу подсказать, почему валидатор не пропускает решение?
package com.javarush.task.task19.task1919;
/*
Считаем зарплаты
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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) {
String line = "";
String name = "";
double sum = 0;
List<String> stringList = new ArrayList<>();
Map<String, Double> treeMap = new TreeMap<>();
try (
// BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\JavaRushTasks\\2.JavaCore\\src\\com\\javarush\\task\\task19\\task1919\\"
// + args[0]))
BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]))
) {
while ((line = bufferedReader.readLine()) != null) {
stringList.add(line);
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
Pattern namePattern = Pattern.compile("\\D+");
Pattern sumPattern = Pattern.compile("(\\d+.\\d+)|(\\d+)");
Matcher nameMatcher = null;
Matcher sumMatcher = null;
for (String str : stringList) {
nameMatcher = namePattern.matcher(str);
sumMatcher = sumPattern.matcher(str);
while (nameMatcher.find()) {
name = str.substring(nameMatcher.start(), nameMatcher.end()).trim();
break;
}
while (sumMatcher.find()) {
sum = Double.parseDouble(str.substring(sumMatcher.start(), sumMatcher.end()));
}
if (treeMap.containsKey(name)) {
sum += treeMap.get(name).doubleValue();
}
treeMap.put(name, sum);
}
for (Map.Entry<String, Double> entry : treeMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}