Друзья, почему валидатор не принимает решение "Убедись, что из файла в список PEOPLE правильно добавляются имена."??? Вродь, все нормуль, пробелов лишних нет....
package com.javarush.task.task19.task1921;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/* Хуан Хуанович
В метод main первым параметром приходит имя файла.
В этом файле каждая строка имеет следующий вид:
имя день месяц год
где [имя] - может состоять из нескольких слов, разделенных пробелами, и имеет тип String.
[день] - int, [месяц] - int, [год] - int
данные разделены пробелами.
Заполнить список PEOPLE используя данные из файла.
Закрыть потоки.
Пример входного файла:
Иванов Иван Иванович 31 12 1987
Вася 15 5 2013
Требования:
1. Класс Solution должен содержать публичную константу PEOPLE типа List<Person>, которая должна быть сразу проинициализирована.
2. Программа НЕ должна считывать данные с консоли.
3. Программа должна считывать содержимое файла (используй FileReader).
4. Поток чтения из файла (FileReader) должен быть закрыт.
5. Программа должна заполнить список PEOPLE данными из файла.
6. Программа должна правильно работать с двойными именами, например Анна-Надежда.
*/
public class Solution {
public static final List<Person> PEOPLE = new ArrayList<Person>();
public static void main(String[] args) throws IOException, ParseException {
ArrayList<String[]> list=new ArrayList<>();
BufferedReader fileRead=new BufferedReader(new FileReader(args[0]));
while (fileRead.ready()) list.add(fileRead.readLine().split(" "));
fileRead.close();
HashMap<String, Date> map=new HashMap<>();
StringBuilder name=new StringBuilder();
StringBuilder birthday=new StringBuilder();
SimpleDateFormat formatDate=new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
Date byrthdate;
for (int i=0; i<list.size(); i++) {
for (int j=0; j<list.get(i).length; j++){
if (j<list.get(i).length-4)name.append(list.get(i)[j]).append(" ");
if (j==list.get(i).length-4)name.append(list.get(i)[j]);
if (j>=list.get(i).length-3&&j<list.get(i).length-1) birthday.append(list.get(i)[j]).append("-");
if (j==list.get(i).length-1) birthday.append(list.get(i)[j]);
}
byrthdate=formatDate.parse(birthday.toString());
map.put(name.toString(),byrthdate);
name=new StringBuilder();
birthday=new StringBuilder();
}
//System.out.print(map);
for (Map.Entry entry : map.entrySet()) {
PEOPLE.add(new Person(entry.getKey().toString(),(Date)entry.getValue()));
}
/* for (int i=0;i<PEOPLE.size();i++){
System.out.println(PEOPLE.get(i).getName()+" "+PEOPLE.get(i).getBirthDate());
}*/
}
}