Advertisement
jaVer404

level19.lesson10.home03(done)_1 attempt

Feb 25th, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1. package com.javarush.test.level19.lesson10.home03;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileReader;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.Date;
  8. import java.util.GregorianCalendar;
  9. import java.util.List;
  10.  
  11. /* Хуан Хуанович
  12. В метод main первым параметром приходит имя файла.
  13.  
  14. В этом файле каждая строка имеет следующий вид:
  15. имя день месяц год
  16. где [имя] - может состоять из нескольких слов, разделенных пробелами, и имеет тип String
  17. [день] - int, [месяц] - int, [год] - int
  18. данные разделены пробелами
  19.  
  20. !!!Заполнить список PEOPLE импользуя данные из файла
  21.  
  22. Закрыть потоки. Не использовать try-with-resources
  23.  
  24. Пример входного файла:
  25. Иванов Иван Иванович 31 12 1987
  26. Вася 15 5 2013
  27. */
  28.  
  29. public class Solution {
  30.     public static final List<Person> PEOPLE = new ArrayList<Person>();
  31.  
  32.     public static void main(String[] args) {
  33.         try {
  34.             BufferedReader fileReader = new BufferedReader(new FileReader(args[0]));
  35.             String fileLine="";
  36.             while ((fileLine=fileReader.readLine())!=null) {
  37.                 try
  38.                 {
  39.                     PEOPLE.add(separNameAndDate(fileLine));
  40.                 }
  41.                 catch (Exception e) {}
  42.             }
  43.             fileReader.close();
  44.  
  45.         } catch (Exception e) {}
  46.     }
  47.  
  48.     public static Person separNameAndDate(String fileLine) {
  49.         String[]splittedLine = fileLine.split(" ");
  50.         int splLineIndex = (splittedLine.length) - 1;
  51.         int year = Integer.parseInt(splittedLine[splLineIndex]);
  52.         int month = (Integer.parseInt(splittedLine[splLineIndex-1]));
  53.         int day = Integer.parseInt(splittedLine[splLineIndex-2]);
  54.         int i = fileLine.indexOf(String.format(" %d %d %d",day,month,year));
  55.         Date persDate = (new GregorianCalendar(year,month-1,day)).getTime();
  56.         String persName= fileLine.substring(0,i);
  57.         return new Person(persName,persDate);
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement