файл:
Иванов Иван Иванович 3 12 2000
Мустафа-Оглы Хасан Абдурахман ибн Хоттаб 24 12 1957
Орлова Анна-Мария 10 6 1987
Виктор 9 11 2001
Михаил Евграфович Салтыков-Щедрин 26 01 1826
Смирнов Дмитрий 2 03 1985
Анна-Надежда Михайловна Салтыкова-Щедрина 04 05 1850
считанные строки:
Иванов Иван Иванович 3 12 2000
Мустафа-Оглы Хасан Абдурахман ибн Хоттаб 24 12 1957
Орлова Анна-Мария 10 6 1987
Виктор 9 11 2001
Михаил Евграфович Салтыков-Щедрин 26 01 1826
Смирнов Дмитрий 2 03 1985
Анна-Надежда Михайловна Салтыкова-Щедрина 04 05 1850
вывод из списка:
Иванов Иван Иванович 3 груд. 2000 р.
Мустафа-Оглы Хасан Абдурахман ибн Хоттаб 24 груд. 1957 р.
Орлова Анна-Мария 10 черв. 1987 р.
Виктор 9 лист. 2001 р.
Михаил Евграфович Салтыков-Щедрин 26 січ. 1826 р.
Смирнов Дмитрий 2 бер. 1985 р.
Анна-Надежда Михайловна Салтыкова-Щедрина 4 трав. 1850 р.
не пойму, что тут не так?
package com.javarush.task.task19.task1921;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static final List<Person> PEOPLE = new ArrayList<>();
public static void main(String[] args) {
//args = new String[] {"storage/emulated/0/Documents/file.txt"};
Pattern pattern = Pattern.compile("^(?<name>(\\p{Alpha}+(-\\p{Alpha}+)?\\s?)*)\\s+(?<day>\\d\\d?)\\s+(?<month>\\d\\d?)\\s+(?<year>\\d{4})");
Matcher matcher;
try (BufferedReader reader = new BufferedReader(new FileReader(args[0]))) {
String str = "";
while ((str=reader.readLine())!=null) {
String name = "";
int day = 0;
int month = 0;
int year = 0;
Calendar calendar;
matcher = pattern.matcher(str);
if (matcher.find()) {
name = matcher.group("name");
day = Integer.parseInt(matcher.group("day"));
month = Integer.parseInt(matcher.group("month"))-1;
year = Integer.parseInt(matcher.group("year"));
}
if (!name.isEmpty()) {
calendar = new GregorianCalendar(year, month, day);
PEOPLE.add(new Person(name, calendar.getTime()));
}
}
}
catch (IOException e) {
e.printStackTrace();
}
for (Person person : PEOPLE) {
System.out.println(person.toString());
}
}
}