И еще один адаптер

  • 10
  • Недоступна
Адаптировать Scanner к PersonScanner. Классом-адаптером является PersonScannerAdapter. В классе адаптере создать приватное финальное поле Scanner fileScanner. Поле инициализировать в конструкторе с одним аргументом типа Scanner. Данные в файле хранятся в следующем виде: Иванов Иван Иванович 31 12 19
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (128)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Maxim Moskalyuk22 уровень, Санкт-Петербург
16 апреля, 23:07
Думал у меня мозги через ноздри польются, пока я допёр, что к чему
Владислав Пахомов19 уровень, Белгород
7 апреля, 13:59
Так. firstName = имя; secondName = отчество; thirdName = фамилия. Все понятно? Вот и хорошо, а теперь пошли доделывать последний пункт)
Lein31 уровень, Москва
6 апреля, 08:00
Я чувствую в себе уже дух самурая - 5 попыток из-за неправильной последовательности ФИО. И главное, в ТЗ не ясно, какая должна быть верной
Roman Afonin31 уровень, Санкт-Петербург
5 апреля, 12:01
Если ничего не поняли, читаем коммент Юрия Гончарова ниже. Инструкция что надо. И да, обращаем внимание на порядок ФИО в конструкторе и в считываемой строке.
Tanarri24 уровень
4 апреля, 14:19
Мне даты скоро будут сниться в страшном сне
Антон22 уровень, Москва
31 марта, 19:17
сделал с 1 попытки, лучше чем 66% учеников, но все изучаю решения других, почерпнул для себя вот эту мулю))
split(" ", 4)
четко!!
S20 уровень, Минск
24 марта, 23:07
Решил задачу за минут 15-20. Но валидатору что-то не нравилось, ковырял DateFormat, тыкал, пробовал, проверял алгоритм, потратил еще час... И тут все-так залез более и второй раз более внимательно посмотрел в конструктор Person и заметали, что этот профессор, с...а, поменял порядок ФИО! И на это я потратил час драгоценного времени? Чему учат такие заподлянки??? Я конечно понимаю, что внимательности, но мне бы сейчас сначала с джавой разобраться, а то до внимательности и не дойдет! Нафиг кому нужен внимательный программист, не знающий языка программирования.
Андрей29 уровень, Гомель
21 марта, 12:06
Убейтесь со своими firstName, middleName и lastName. Если хотите уж на английском то так и пишите name, surname, patronymic. П.С. для задачи необходимо имя / отчество / фамилия в таком порядке.
Александр23 уровень, Казань
18 марта, 11:37
Комменты сила! Узнал как запарсить строку в нужном виде - дату не обязательно в конце парсить, а потом собирать - достаточно просто указать лимит.
String str[] = fileScanner.nextLine().split(" ", 4);
Для проверки можно заюзать код:
Scanner sc = new Scanner(Paths.get("C:/1/1.txt"), "Windows-1251");
PersonScanner psc = new PersonScannerAdapter(sc);

System.out.println(psc.read());
System.out.println(psc.read());
psc.close()
Николай22 уровень
4 марта, 09:30
пока дошел до этого уровня успел забыть как работать с классом Data ... оставлю себе как напоминалку
Date birthDate = new SimpleDateFormat("d M y", Locale.ENGLISH).parse(stringDate);
Lex28 уровень, Москва
6 марта, 10:42
Использовал ваш подход к решению с датой,но так до конца и не понял как метод parse разбирает строку,по каким критериям.Если сможете поясните,или за ссылку на материалы тоже буду благодарен.
Николай22 уровень
6 марта, 11:50
http://divancoder.ru/2017/12/simpledateformat/ Если вкратце, то первый параметр, это вид в котором мы ждем параметр даты (день, месяц и год разделенные пробелом в нашем случае, но можно использовать и другие разделители), второй параметр это в каком языковом представлении мы ждем - по идее можно пропустить. parse - это метод, который по шаблону из первого параметра разделяет поданную в него строку
Lex28 уровень, Москва
6 марта, 16:09
Спасибо