Считаем зарплаты В метод main первым параметром приходит имя файла. В этом файле каждая строка имеет следующий вид: имя значение где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом.

Для каждого имени посчитать сумму всех его значений. Все данные вывести в консоль, предварительно отсортировав в возрастающем порядке по имени. Закрыть потоки.

Пример входного файла: Петров 2 Сидоров 6 Иванов 1.35 Петров 3.1

Пример вывода: Иванов 1.35 Петров 5.1 Сидоров 6.0

Требования: 1. Программа НЕ должна считывать данные с консоли. 2. Программа должна считывать содержимое файла (используй FileReader). 3. Поток чтения из файла (FileReader) должен быть закрыт. 4. Программа должна выводить в консоль каждое имя и сумму всех его значений, все данные должны быть отсортированы в возрастающем порядке по имени.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.TreeMap;

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader fileReader = new BufferedReader(new FileReader(args[0]));
        TreeMap<String, Double> treeMap = new TreeMap<>();
        while (fileReader.ready()) {
            String line = fileReader.readLine();
            //trim() - убирает все пробелы в начале и конце строки
            String name = line.replaceAll("[\\d]|\\.", "").trim();
            double money = Double.parseDouble(line.replaceAll(name, "").trim());
            treeMap.merge(name,money, Double::sum);
        }

        fileReader.close();

        for (Map.Entry entry : treeMap.entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }
}

задан 11 Мар, 07:06

Nickopol's gravatar image

Nickopol
111
одобрено: 0%

Код отрабатывает верно. Условия все учел, но валидатор не принимает :( Подскажите что не так пожалуйста.

(11 Мар, 07:07) Nickopol
Ваш ответ будет первым!
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×5

Задан: 11 Мар, 07:06

Просмотров: 74 раз

Отредактирован: 11 Мар, 07:07