I seem to be getting the right answer, but I guess something is wrong as I am not passing the last test.
Can anyone give me a hint as to where the problem is with my code?
package com.codegym.task.task19.task1919;
/*
Calculating salaries
*/
import java.awt.image.ImagingOpException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws IOException {
String input = readFile(args[0]);
String[] lines = getLines(input);
Map<String, Double> salaries = addSalaries(lines);
//printSalaries(salaries);
for (Map.Entry<String, Double> entry: salaries.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
private static void printSalaries(Map<String, Double> salaries) {
for (String key: salaries.keySet()) {
System.out.println(key + " " + salaries.get(key));
}
}
private static Map addSalaries(String[] lines) {
TreeMap<String, Double> salaries = new TreeMap<>();
for (String line: lines) {
String[] element = line.trim().split(" ");
if (element.length != 2) continue;
String name = element[0];
Double value = Double.parseDouble(element[1]);
if (salaries.containsKey(name)) {
salaries.put(name, salaries.get(name) + value);
}
else {
salaries.put(name, value);
}
}
return salaries;
}
private static String[] getLines(String input) {
return input.split("\r");
}
private static String readFile(String filename) throws IOException {
FileReader reader = new FileReader(filename);
int letter = reader.read();
StringBuilder str = new StringBuilder();
while (letter != -1) {
str.append((char) letter);
letter = reader.read();
}
reader.close();
return str.toString();
}
}