Ребята проверил программу все работает, взял примеры с вопросов, работает тоже, но валидатор ругается, было бы не плохо если бы валидатор давал пример, при котором программа работает не верно,( Вопрос, в чем ошибка?
package com.javarush.task.task19.task1919;
/*
Считаем зарплаты
*/
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader file = new BufferedReader(new FileReader(args[0]));
StringBuilder sb = new StringBuilder();
ArrayList<String> names = new ArrayList<>();
ArrayList<Double> salaries = new ArrayList<>();
HashMap<String, Double> table = new HashMap<>();
while (file.ready()) {
sb.append(file.readLine());
}
Pattern pattern = Pattern.compile("[a-zA-zа-яА-Я]+");
Matcher matcher = pattern.matcher(sb.toString());
while (matcher.find()) {
names.add(matcher.group());
}
pattern = Pattern.compile("[1-9][0-9]*\\.?[0-9]*([Ee][+-]?[0-9]+)?");
matcher = pattern.matcher(sb.toString());
while (matcher.find()) {
salaries.add(Double.parseDouble(matcher.group()));
}
for (int i = 0; i < names.size(); i++) {
if (!table.containsKey(names.get(i))) {
table.put(names.get(i), salaries.get(i));
} else {
Double s = table.get(names.get(i));
table.put(names.get(i), s + salaries.get(i));
}
}
TreeMap<String,Double> sortedTable = new TreeMap<>();
// for (Map.Entry<String,Double> pair : table.entrySet()) {
// System.out.print(pair.getKey() + " ");
// System.out.println(pair.getValue());
// }
// List<Map.Entry<String,Double>> list = new LinkedList<Map.Entry<String, Double>>(table.entrySet());
// Collections.sort(list, new Comparator<Map.Entry<String, Double>>() {
// @Override
// public int compare(Map.Entry<String, Double> o1, Map.Entry<String, Double> o2) {
// return o1.getKey().compareToIgnoreCase(o2.getKey());
// }
// });
for(Map.Entry<String,Double> pair: table.entrySet()){
sortedTable.put(pair.getKey(),pair.getValue());
}
for(Map.Entry<String,Double> pair: sortedTable.entrySet()){
System.out.println(pair.getKey()+" " +pair.getValue());
}
file.close();
}
}