Добрый день.
Задача не проходит послений пункт, выдает "Убедись, что вывод соответствует заданию".
Тестовое задание программа проходит

Поигрался с кодировками, но кажется, дело не в этом.
Подскажите. в чем может причина.

public class Solution {
    public static void main(String[] args) throws IOException, FileNotFoundException{
        FileReader fr = null;
        if (args[0].length() != 0){
            fr = new FileReader(args[0]);
        }

        int count = 0;
        int kol = 0;//количество символов в файле
        char[] buf = new char[500];
        while (fr.ready()) {
            kol = fr.read(buf);
        }

        for(int i = 0; i < kol; i++){
            if (buf[i] == 10) count++;
        }
        count = count + 1;//количество строк в файле

        fr.close();
        String[] str = new String[count];//исходный массив имен
        String[] work = new String[count];//масси для сохранения исходного массива имен перед сортировкой
        String[] d = new String[count];//исходный масси зарплат
        String[] d_work = new String[count];//массив зарплат после сортировки массива имен

        for(int i = 0; i < count; i++){
            str[i] = "";
            d[i] = "";
        }

        int k = 0;
        //заполняем массив имен и массив зарплат
        for(int i=0; i < kol; i++) {
            if (buf[i] != 0) {
                if (buf[i] != 32) {
                    str[k] = str[k] + buf[i];
                } else {
                    for (int y = i + 1; y < (kol+1); y++) {
                        if (buf[y] == 13 || buf[y] == 0) {//если лостигнут конец строки или конец файла
                            i = y + 1;
                            break;
                        }
                        d[k] = d[k] + buf[y];
                    }
                    k++;//увеличиваем счетчик количества строк
                }
            }
        }

        //делаем копию массива зарплат
        for(int i = 0; i < count; i++){
            work[i] = str[i];
        }

        //суммируем зарплаты
        for(int i = 0; i < count; i++){
            for(int j = i+1; j < count; j++){
                if (str[i].equals(str[j]) && str[i] != "" && str[j] != ""){
                    str[j] = "";
                    work[j] = "";
                    d[i] = String.valueOf(Double.parseDouble(d[i]) + Double.parseDouble(d[j]));
                    d[j] = "";
                }
            }
        }

        //сортировка
        Arrays.sort(str);

        //приведение массива зарплат в соответствие с именами после сортировки
        for(int i = 0; i < count; i++){
            for(int j = 0; j < count; j++) {
                if (work[i].equals(str[j]) && work[i] != "" && str[j] != "") {
                    d_work[j] = d[i];
                }
            }
        }

        //вывод
        for(int i = 0; i < count; i++){
            if (str[i] != "")
                System.out.println(str[i] + " " + Math.rint(100.0*Double.parseDouble(d_work[i]))/100.0);
        }
    }
}