Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level19.lesson10.home01;
- /* Считаем зарплаты
- В метод main первым параметром приходит имя файла.
- В этом файле каждая строка имеет следующий вид:
- имя значение
- где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом
- Для каждого имени посчитать сумму всех его значений
- Все данные вывести в консоль, предварительно отсортировав в возрастающем порядке по имени
- Закрыть потоки. Не использовать try-with-resources
- Пример входного файла:
- Петров 2
- Сидоров 6
- Иванов 1.35
- Петров 3.1
- Пример вывода:
- Иванов 1.35
- Петров 5.1
- Сидоров 6.0
- */
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.TreeSet;
- import java.util.prefs.BackingStoreException;
- public class Solution {
- public static void main(String[] args) {
- BufferedReader readFile = null;
- try
- {
- readFile = new BufferedReader(new FileReader(args[0]));
- String tmp="";
- ArrayList<String[]> myStrings=new ArrayList<String[]>();
- String [] line;
- TreeSet<String> names = new TreeSet<String>();
- while ((tmp=readFile.readLine())!=null) {
- try
- {
- line=tmp.split(" ");
- if (line.length==2) {
- myStrings.add(line);
- names.add(line[0]);
- }
- }
- catch (Exception e) {}//end of catch
- }
- readFile.close();
- for (String someName : names) {
- double salary=0;
- for (String[]lineItem : myStrings) {
- if (someName.equals(lineItem[0])) {
- try {
- salary=salary+Double.parseDouble(lineItem[1]);
- }
- catch (Exception e) {
- }
- }
- }
- System.out.println(String.format("%s %s",someName, salary));
- }
- }//end of main try
- catch (IOException e) {}//main try-catch
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement