Всем привет Два последних пункта не проходят валидацию. Получая данные из PEOPLE после добавления получаю вот такое. Не считая кодировку, работает правильно. Из-за кодировки и не принимает решение? Как исправить? :(
������ ���� �������� Thu Dec 31 00:00:00 EET 1987
 ���� Wed May 15 00:00:00 EEST 2013
 ����-���� Thu Mar 12 00:00:00 EET 1992
Хуан Хуанович
В метод main первым параметром приходит имя файла.
В этом файле каждая строка имеет следующий вид:
имя день месяц год
где [имя] — может состоять из нескольких слов, разделенных пробелами, и имеет тип String.
[день]int, [месяц]int, [год]int
данные разделены пробелами.

Заполнить список PEOPLE используя данные из файла.
Закрыть потоки.

Пример входного файла:
Иванов Иван Иванович 31 12 1987
Вася 15 5 2013


Требования:
1. Класс Solution должен содержать публичную константу PEOPLE типа List, которая должна быть сразу проинициализирована.
2. Программа НЕ должна считывать данные с консоли.
3. Программа должна считывать содержимое файла (используй FileReader).
4. Поток чтения из файла (FileReader) должен быть закрыт.
5. Программа должна заполнить список PEOPLE данными из файла.
6. Программа должна правильно работать с двойными именами, например Анна-Надежда.
package com.javarush.task.task19.task1921;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

/*
Хуан Хуанович
*/

public class Solution {
    public static final List<Person> PEOPLE = new ArrayList<Person>();

    public static void main(String[] args) throws IOException {
        String line, name = "", filname = args[0];
        String[] parts;
        int day = 0, mnth = 0, year = 0;
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filname));
        int i = 0;

        while ((line = bufferedReader.readLine()) != null) {
            parts = line.split(" ");
            while (!parts[i].matches("^-?\\d+$")) {
                name = name + " " + parts[i];
                i++;
            }
            if (parts[i].matches("^-?\\d+$")) { // ПРОВЕРЯЮ ЯВЛЯЕТСЯ ЛИ INTEGER
                day = Integer.parseInt(parts[i]);
                //i++;
                mnth = Integer.parseInt(parts[i+1]);
                //i++;
                year = Integer.parseInt(parts[i+2]);
            }
            i = 0;
            Date date = new GregorianCalendar(year, mnth-1, day).getTime();
            PEOPLE.add(new Person(name,date));
            name = "";

        }
        bufferedReader.close();
        for (Person p :PEOPLE)
           System.out.println(p.getName()+" "+p.getBirthday());
    }
}