Прочитать из файла даты и поместить в конструктор
Мне нужно прочитать из файла 4 даты и поместить их в конструктор. То есть, каждую строку присвоить к переменной и в конструктор. И еще проверить их по регулярному выражению. Вот мой кусочек кода:
Offender off = new Offender("Сотников", "Евгений", "Валерьевич");
Pattern pattern = Pattern.compile("^[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])");
Matcher matcher;
Freedom freedom;
FileReader fr= new FileReader("file1.txt");
Scanner scan = new Scanner(fr);
LocalDate date, date1, date2, date3;
LinkedList<Freedom> free = new LinkedList<>();
while (scan.hasNextLine()) {
String s = scan.nextLine();
matcher = pattern.matcher(s);
while (matcher.find()) {
... - как то присвоить каждую строку с файла к date, date1,...
freedom = new Freedom(date, date1, date2, date3, off);
free.add(freedom);
}
}
for(Freedom f: free)
{
System.out.println(f);
}
fr.close();
Вот сам конструктор:
public class Freedom implements Comparable<Freedom> {
private LocalDate dateOfCrime;//дата судимостей
private LocalDate dateOfLastduresse;//дата последнего заключения
private LocalDate dateOfLastexemption;//дата последнего освобождения
private LocalDate dateOfBirth;
private Offender offender;
public Offender getOffender() {
return offender;
}
public void setOffender(Offender offender) {
this.offender = offender;
}
public Freedom(LocalDate dateOfCrime, LocalDate dateOfLastduresse, LocalDate dateOfLastexemption, LocalDate dateOfBirth, Offender offender)
{
this.dateOfCrime=dateOfCrime;
this.dateOfLastduresse=dateOfLastduresse;
this.dateOfLastexemption=dateOfLastexemption;
this.dateOfBirth= dateOfBirth;
this.offender=offender;
}
Ответы (1 шт):
Автор решения: Николай Гнап
→ Ссылка
Вы можете читать файл построчно для этого используйте код ниже, где line это переменная в которую записана строка.
String line = Files.readAllLines(Paths.get("C:\\Users\\Николай\\Documents\\TestSMS\\GSM.txt")).get(в скобках указываете строку которую нужно читать к примеру 3);
и потом проверять регулярным выражением для поска даты.
(0?[1-9]|1[12])