Создал файл, добавил туда 2 строки
Иванов Иван Иванович 31 12 1987
Анна-Надежда 15 5 2013
Запустил, перед этим переопределил toString в классе People.
Вывел на консоль
[Person{name='Анна-Надежда', birthDate=Wed May 15 00:00:00 ALMT 2013},
Person{name='Иванов Иван Иванович', birthDate=Thu Dec 31 00:00:00 ALMT 1987}]
Добавляется судя по выводу правильно.
Еще попробовал с такими строками
Иванов Иван Иванович 31 12 1987
Анна-Надежда-Анна 15 5 2013
Вывод в консоль такой
[Person{name='Анна-Надежда-Анна', birthDate=Wed May 15 00:00:00 ALMT 2013},
Person{name='Иванов Иван Иванович', birthDate=Thu Dec 31 00:00:00 ALMT 1987}]
Судя по этому выводу имя тоже правильно добавлено. После имени нет пробелов.
Если в блоке при добавлении имени написать
s.substring(0, matcher.start() - 1).replaceAll("\\s+", " "); на случай, если присутствует несколько пробелов между именем состоящим из нескольких слов, то все равно валидатор пишет, про имя Анна-Надежда.
if (matcher.find()) {
nameAndBdOfAperson.put(s.substring(0, matcher.start() - 1), s.substring(matcher.start(), matcher.end()));
}
package com.javarush.task.task19.task1921;
import java.util.Date;
public class Person {
private String name;
private Date birthDate;
public Person(String name, Date birthDate) {
this.name = name;
this.birthDate = birthDate;
}
public String getName() {
return name;
}
public Date getBirthDate() {
return birthDate;
}
}