Advertisement
jaVer404

level19.lesson10.home01(done)_14 attempts

Feb 23rd, 2016
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.53 KB | None | 0 0
  1. package com.javarush.test.level19.lesson10.home01;
  2.  
  3. /* Считаем зарплаты
  4. В метод main первым параметром приходит имя файла.
  5. В этом файле каждая строка имеет следующий вид:
  6. имя значение
  7. где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом
  8.  
  9. Для каждого имени посчитать сумму всех его значений
  10. Все данные вывести в консоль, предварительно отсортировав в возрастающем порядке по имени
  11. Закрыть потоки. Не использовать try-with-resources
  12.  
  13. Пример входного файла:
  14. Петров 2
  15. Сидоров 6
  16. Иванов 1.35
  17. Петров 3.1
  18.  
  19. Пример вывода:
  20. Иванов 1.35
  21. Петров 5.1
  22. Сидоров 6.0
  23. */
  24.  
  25. import java.io.BufferedReader;
  26. import java.io.FileReader;
  27. import java.io.IOException;
  28. import java.util.ArrayList;
  29. import java.util.TreeSet;
  30. import java.util.prefs.BackingStoreException;
  31.  
  32. public class Solution {
  33.     public static void main(String[] args) {
  34.         BufferedReader readFile = null;
  35.         try
  36.         {
  37.             readFile = new BufferedReader(new FileReader(args[0]));
  38.             String tmp="";
  39.             ArrayList<String[]> myStrings=new ArrayList<String[]>();
  40.             String [] line;
  41.             TreeSet<String> names = new TreeSet<String>();
  42.             while ((tmp=readFile.readLine())!=null) {
  43.                 try
  44.                 {
  45.                     line=tmp.split(" ");
  46.                     if (line.length==2) {
  47.                         myStrings.add(line);
  48.                         names.add(line[0]);
  49.                     }
  50.                 }
  51.                 catch (Exception e) {}//end of catch
  52.             }
  53.             readFile.close();
  54.             for (String someName : names) {
  55.                 double salary=0;
  56.                 for (String[]lineItem : myStrings) {
  57.                     if (someName.equals(lineItem[0])) {
  58.                         try {
  59.                             salary=salary+Double.parseDouble(lineItem[1]);
  60.                         }
  61.                         catch (Exception  e) {
  62.                         }
  63.                     }
  64.                 }
  65.                 System.out.println(String.format("%s %s",someName, salary));
  66.             }
  67.  
  68.         }//end of main try
  69.         catch (IOException e) {}//main try-catch
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement