Жалуется на имя, поэтому переделал метод работы с ним, вывод тот же если запустить код, тоже не нравится валидатору...
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.text.DateFormat;
import java.text.SimpleDateFormat;
import java.io.FileNotFoundException;
import java.util.Date;
/*
Хуан Хуанович
*/
public class Solution {
public static final List<Person> PEOPLE = new ArrayList<Person>();
public String name = "";
public String date = "";
public static void main(String[] args) throws IOException, FileNotFoundException {
BufferedReader fReader = new BufferedReader(new FileReader(args[0]));
while (fReader.ready()) {
Solution solution = new Solution();
String info = fReader.readLine();
String[] mas = info.split(" ");
solution.name(mas);
solution.date(mas);
}
fReader.close();
}
public void name(String[] mas) {
String s1 = mas[mas.length-1];
String s2 = mas[mas.length-2];
String s3 = mas[mas.length-3];
mas[mas.length-1] = "";
mas[mas.length-2] = "";
mas[mas.length-3] = "";
for (String element : mas) {
String str = element; //.replaceAll("\\p{N}", "");
if (!str.equals("")) name += str + " ";
}
mas[mas.length-1]=s1;
mas[mas.length-2]=s2;
mas[mas.length-3]=s3;
name.trim();
}
public void date(String[] mas) {
for (String element : mas) {
String str = element.replaceAll("[\\D]", "");
if (!str.equals("")) date += str + " ";
}
date.trim();
person();
}
public void person() {
String[] dateM = date.split(" ");
int dayofmonth = Integer.parseInt(dateM[0]);
int month = Integer.parseInt(dateM[1]);
int year = Integer.parseInt(dateM[2]);
Calendar calendar = new GregorianCalendar(year, month-1, dayofmonth);
Date date = calendar.getTime();
Person person = new Person(name, date);
PEOPLE.add(person);
}
}