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

  • 20
  • Недоступна
Адаптировать Scanner к PersonScanner. Классом-адаптером является PersonScannerAdapter. В классе адаптере создать приватное финальное поле Scanner fileScanner. Поле инициализировать в конструкторе с одним аргументом типа Scanner. Данные в файле хранятся в следующем виде: Иванов Иван Иванович 31 12 19
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (230)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Игорь Birt19 уровень, Тирасполь
22 июля, 06:35
Столкнулся ли кто-нибудь ещё с такой проблемой: код прошел валидацию, но не прошел проверку на практике (создал текстовый файл по шаблону, скормил сканнеру путь к файлу, но во время работы получаю экзэпшн): Exception in thread "main" java.util.NoSuchElementException: No line found на 29 строке, там где читается строка из файла (fileScanner.nextLine()) напоминаю: валидатор задачу принял, оценку поставил, В ЧЕМ ПРОБЛЕМА, кто подскажет?
Igor19 уровень, Москва
28 июля, 16:25
У меня было что-то подобное. Пока не передал Сканнеру путь к файлу через File.
Уася23 уровень, Замусральск
21 июля, 22:36
Задача простая. Единствено важное место во всей задаче, которое может вас надолго остановить: new SimpleDateFormat("dd MM yyyy"); Аргументы через пробелы. Для проверки работоспособности программы, создайте текстовый файл согласно условию и запустите программу с помощю параметров запуска. В мейн методе напишите: File file=new File(args[0]); System.out.println(new PersonScannerAdapter(new Scanner(file)).read());
Lukin Ivan20 уровень, Киев
17 июля, 15:57
Это жуть, кучу попыток использовал, что бы потом найти один дельный совет : Не закрывайте чтение потока fileScanner.close в методе read() . Всем добра и крепких нервов, что бы завершать задачи на 100%.
Dator23 уровень, Киев
16 июля, 10:15
Больше всего проблем создает невнимательность. (Последовательность аргументов в конструкторе Person) Ну и дату не смог вставить без SimpleDateFormat.
Геннадий22 уровень, Иркутск
21 июля, 16:41
Я обошелся без SimpleDateFormat. Сделал нью Date(год-1900, месяц-1, день)
Виталий19 уровень, Санкт-Петербург
13 июля, 18:44
1. Для проверки в main написал: PersonScannerAdapter PSA = new PersonScannerAdapter(new Scanner(System.in));//Вводил тестовую строку из консоли PSA.read(); PSA.close(); 2. В методе read() написал: String[] pers = fileScanner.nextLine().split(" ", 4); //парсит строку с разбивкой на 4 части SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d M y", Locale.ENGLISH);
Mike23 уровень, Москва
20 июля, 14:14
Спасибо. Забыл по 2ой аргумент сплита. В итоге дату собирал из 3 стрингов :(:(
Геннадий22 уровень, Иркутск
21 июля, 16:42
Я парсил строку в 6 аргументов. Последние три потом парсил в инт и затем в new Date(год-1900, месяц-1, день)
Екатерина23 уровень, Санкт-Петербург
30 июня, 13:40
Для решения задачи стоит обратить внимание на метод useDelimiter класса Scaner (можно будет не сплитовать строку), затем просто считываем по отдельности наши поля, складываем в переменные и расставляем в конструкторе в нужном порядке.
Татьяна20 уровень, Ростов на Дону
29 июня, 21:48
Считанную строку сплитила по пробелу в массив строк 1 ошибка: параметры человека передавать в последовательности: Имя, Фамилия, Отчество, Дата рождения 2 ошибка при собирании даты из трех строк не поставила назад пробелы.
Яков22 уровень, Москва
24 июня, 01:28
15 попыток в надежде разораться с датой . Оказалось ловушка с ФИО ... оооочень внимательно надо ...
Василий Бабин25 уровень, Москва
14 июня, 11:38
Залез в документы по Date. Я использовал Date(int год, int месяц, int дата). Думаю будет кому-то полезно (как и мне) - конструкторы Date: Date() - текущая дата Date(long date) - дата в миллисекундах с 01.01.1970 Date(int год, int месяц, int дата) - int год = текущий год - 1900, int месяц = 0-11, int дата = 1-31 Date(int год, int месяц, int дата, int часы, int минуты) - int год = текущий год - 1900, int месяц = 0-11, int дата = 1-31 ,int часы = 0-23, int минуты = 0-59 Date(int год, int месяц, int дата, int часы, int минуты, int секунды) - int год = текущий год - 1900, int месяц = 0-11, int дата = 1-31 ,int часы = 0-23, int минуты = 0-59, int секунды = 0-59 Date(String s) - строковое представление даты. Date(String s), как я понял, применяется через метод parse(String a) и формат даты - DateFormat, SimpleDateFormat.
Геннадий22 уровень, Иркутск
21 июля, 16:49
Спасибо) Надо приучать уже себя к чтению вот этого всего вот)
Нямка22 уровень, Зажопинск
11 июня, 20:36
Я ощутила физическую боль от этой задачи, всё никак не возвращалась дата в правильном виде. Оказалось, что это моя локальная проблема, и валидатор схавал все в первого раза, хоть и дата выглядела через задницу. Видимо, что-то с локалью.