В чём проблема не понимаю. По-моему, всё должно работать :)
Опишу код
Сначала мы добавляем строки считанные с файла в список strings. Прогнал через дебаггер, тут вроде всё хорошо работает
Потом мы каждый элемент списка прогоняем через цикл, где создаётся две строки. В одной строке только цифры, во второй - только буквы. Через .trim срезаются лишние пробелы в начале и конце. Тут тоже вроде всё хорошо работает
Потом всё это хозяйство добавляется в хэшмап. На выходе из цикла мы имеем хэшмап где хранятся пары имя-дата. В последнем цикле мы создаём person с определенными параметрами и добавляем их в целевой список.
Заранее спасибо за помощь
package com.javarush.task.task19.task1921;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/*
Хуан Хуанович
*/
public class Solution {
public static final List<Person> PEOPLE = new ArrayList<Person>();
public static void main(String[] args) throws IOException, ParseException {
FileReader fileReader = new FileReader(args[0]);
// BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// FileReader fileReader = new FileReader(reader.readLine());
BufferedReader bufferedReader = new BufferedReader(fileReader);
ArrayList<String> strings = new ArrayList<>();
while(bufferedReader.ready()){
strings.add(bufferedReader.readLine());
}
HashMap<String, Date> manAndBirth = new HashMap<>();
for (String string : strings){
// String tmp[] = string.split(" [1234567890]" ); ///здесь могут быть проблемы с регексом
// String name = tmp[0];
SimpleDateFormat sdf = new SimpleDateFormat("dd MM yyyy"); //могут быть проблемы с паттерном
// Date parcingDate = sdf.parse(tmp[1]);
String nameS = string.replaceAll("\\d", " ").trim();
String parcingDateS = string.replaceAll("\\D", " ").trim();
Date parcingDate = sdf.parse(parcingDateS);
//String date = Date.tmp[1];
manAndBirth.put(nameS, parcingDate);
}
for(Map.Entry<String, Date> pair : manAndBirth.entrySet()){
String name = pair.getKey();
Date date = pair.getValue();
Person person = new Person(name, date);
PEOPLE.add(person);
}
//протестить
//заполнить список PERSON, который является классом Person с двумя
//можно попробовать через реплейс и трим удалить все цифры для имени и все буквы для цифр
bufferedReader.close();
fileReader.close();
}
}