Все что нужно делает, с примерами в условии все гладко проходит, описание ошибки непонятное.
Вывод:
Иванов Иван Иванович Sun Dec 31 00:00:00 MSK 1950
Петров Петр Петрович Tue Dec 31 00:00:00 MSK 1957
Ошибка:
Сервер не может корректно протестировать присланное решение. Убедись в наличии всех необходимых классов. Проверь, что в решении нет бесконечных циклов.
package com.javarush.task.task19.task1904;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
И еще один адаптер
*/
public class Solution {
public static void main(String[] args) {
PersonScannerAdapter personScannerAdapter = new PersonScannerAdapter(new Scanner("Иванов Иван Иванович 31 12 1950\n" +
"Петров Петр Петрович 31 12 1957"));
System.out.println(personScannerAdapter.read());
System.out.println(personScannerAdapter.read());
}
public static class PersonScannerAdapter implements PersonScanner {
private Scanner fileScanner;
PersonScannerAdapter(Scanner fileScanner) {
this.fileScanner=fileScanner;
}
@Override
public void close() {
fileScanner.close();
}
@Override
public Person read() {
String person = fileScanner.nextLine();
Pattern p = Pattern.compile("([A-Я][a-я]*) ([A-Я][a-я]*) ([A-Я][a-я]*) (\\d{2} \\d{2} \\d{4})");
Matcher m = p.matcher(person);
m.find();
String string = m.group(4);
DateFormat format = new SimpleDateFormat("dd MM yyyy");
try {
Date date = format.parse(string);
return new Person(m.group(2),m.group(3),m.group(1),date);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
}
}