В общем. я не могу понять как победить дату.
1) Сначала я попробовал из строки, передаваемой в сканер методом сплит вытащить дату рождения целиком, после этого в последний параметр класса Person вставлял просто данные с типом String:
public Person read() throws IOException {
String[] str = fileScanner.nextLine().split(" ", 4);
String date = str[3];
return new Person(str[1], str[2], str[0], str[3]
}
Вывод:Иванов Иван Иванович 31 12 1950
2) Потом использовал класс SimpleDateFormat и тоже нифига:
public Person read() throws IOException {
String[] str = fileScanner.nextLine().split(" ", 4);
String date = str[3];
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d M y", Locale.ENGLISH);
try {
Date date1 = simpleDateFormat.parse(date);
return new Person(str[1], str[2], str[0], date1);
} catch (ParseException ex) {
ex.printStackTrace();
}
return null;
}
Вывод: Иванов Иван Иванович Sun Dec 31 00:00:00 YEKT 1950package com.javarush.task.task19.task1904;
import java.util.Date;
public class Person {
private String firstName;
private String middleName;
private String lastName;
private String birthDate;
public Person(String firstName, String middleName, String lastName, String birthDate) {
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
this.birthDate = birthDate;
}
@Override
public String toString() {
return String.format("%s %s %s %s", lastName, firstName, middleName, birthDate.toString());
}
}