Закрепляем адаптер

  • 20
  • Недоступна
Адаптировать Customer и Contact к RowItem. Классом-адаптером является DataAdapter. Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия: UA Ukraine RU Russia CA Canada
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (188)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Roman19 уровень, Москва
вчера, 15:32
получение номера телефона
"callto://" + contact.getPhoneNumber().replaceAll("[^\\d+]", "");
country_code получил используя stream
countries.entrySet().stream()
                    .filter(s -> s.getValue().equals(customer.getCountryName()))
                    .map(s -> s.getKey())
                    .findFirst()
                    .get();
Татьяна20 уровень, Ростов на Дону
29 June, 22:42
Получение ключа по значению:
for (Map.Entry<String, String> entry : countries.entrySet()) {
                    if (entry.getValue().equals(customer.getCountryName())) {
                        return entry.getKey();
Получение номера без всякого мусора: преобразуем строку в массив символов и в цикле проверяем является ли символ числом Character.isDigit если да, записываем в новую строку return "callto://+" + полученная строка из цифр
Шамиль19 уровень, Кисловодск
Saturday, 20:58
У меня так:
"callto://"+contact.getPhoneNumber().replaceAll("[()-]","");
В телефоном номере может присутствовать символ в природе вообще??? например Р, W,
Vitalachka20 уровень, Лондон
19 June, 21:58
в целом не трудно, после задачи 1903 уже понимаешь что к чему. мои ошибки из-за невнимательности :-( RUS вместо RU и Ivanov Ivan вместо Ivan Ivanov а так всё супер. для преобразования номера использовала replaceAll(); Удачи!
Sergey20 уровень
6 June, 18:56
Я конечно сделал, но что получилось то? Как-то непонятен мне адаптер к двум классам одновременно. Могу понять два адаптера к двум разным классам, а здесь что?
2 June, 18:06
Валя настолько отлетает при использовании строки:
String[] name = contact.getName().split(", ");
в теле класса, вместо двух раз в теле методов, что запарывает проверку конструктора "Класс DataAdapter должен содержать конструктор с параметрами (Customer customer, Contact contact), который инициализирует поля contact и customer.", указывая, что я не инициализировал поле customer. До это задания и до задания "Прайсы" я никогда не боролся с валидатором, но тут прям беда.
Ivan20 уровень, Пенза
15 June, 15:28
++
Денис20 уровень, Москва
19 May, 19:53
Да уж задачка.. пока не решил - начну все таки с изучения регулярок, потом подумаю как бы ее отладить - добавить своих классов - а то так в слепую нифига не выходит
Юлия Осадчук26 уровень
6 May, 20:20
если кто такой же как и я, то "callto://" тоже нужно возвращать.
return "callto://+" + contact.getPhoneNumber().replaceAll("\\D", "");
\\D уберает все кроме цифр
Михаил25 уровень, Воронеж
13 May, 19:30
Круто!)) А то я через Pattern и Matcher убирал все. А оказывается в одну строчку можно сделать. Спасибо!
Илья Огнев27 уровень, Санкт-Петербург
29 May, 10:37
Я вместо \\D написал "[^0-9]", не знал что так можно.
Александр20 уровень, Рыбинск
31 May, 09:03
Сделал так
return "callto://" + contact.getPhoneNumber().replaceAll("[()-]", "");
то есть указал убрать из строки конкретно круглые скобки и дефисы. Тут по синтаксису регулярных выражений в квадратных скобках указываем множество символов, каждый из которых будет заменяться выражением после запятой (здесь "").
2 June, 18:10
Не знаю как валидатор принял, у вас два плюса (+) получается в номере.
Александр20 уровень, Рыбинск
3 June, 10:42
Да, верно, валидатору я отправлял другую строку с "callto://", поправил.
Ivan20 уровень, Пенза
15 June, 15:32
Юлия, спасибо!
Артём Кравченко20 уровень, Таганрог
5 May, 08:25
Встречался с регулярками ещё когда SQL изучал - тогда более менее удалось разобраться. Сейчас, видимо, придётся ещё глубже нырять :)
Александр23 уровень, Екатеринбург
3 May, 19:26
Да вы издеваетесь!?!?! "В статическом блоке класса Solution в карту countries должна добавляться запись "UA Ukraine", где UA - ключ ,а Ukraine - значение." Я понимаю, что это обучение и есть желание задачу усложнить на ровном месте. Но зачем учить делать простые вещи через жопу?!! К тому же в условии нет указаний, что должно быть ключом, а что значением.
Андрей23 уровень, Минск
7 May, 18:34
я тоже сначала сделал по-человечески, а потом подумал, что будут еб*ти мозг за это, переделал) оказалось не зря)))
Александр20 уровень, Рыбинск
31 May, 08:59
Есть ощущение, что приучают к реальной жизни. По сути адаптер же пишется как раз тогда, когда о совместимости изначально не подумали. Вот и приходится писать костыль, чтобы HashMap работала в обратную сторону.
2 June, 18:11
Да ладно, одной строчкой костылится)
return countries.entrySet().stream().filter(map -> map.getValue() == customer.getCountryName()).findFirst().get().getKey();
Wally Dator22 уровень, Чехов
3 June, 12:38
И где только понабрались?)
Radik Gismatullin22 уровень, Казань
22 April, 14:00
Спасибо за хорошую задачку!