Парсер реквестов

  • 8
  • Недоступна
Считайте с консоли URL-ссылку. Затем выведите на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15). URL содержит минимум 1 параметр. Если присутствует параметр obj, то передайте его значение в нужный метод alert.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (316)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
almariel116 уровень, Москва
вчера, 09:13
Тоже три дня обходила задачу стороной. Пыталась решить через массив char[], поняла, что путь тупиковый. Решила не очень красиво, через два массива строк с постоянным дроблением ссылки. Зато разобралась со split, regex, replaceAll, IndexOf, substring, replace. Для выбора функции alert() применила проверку на NumberFormatEcxeption. Тоже кривовато вышло, хоть и с первой попытки) пока это самая муторная задача была.
Islam Laipanov16 уровень, Москва
воскресенье, 00:38
Мне очень нравится проект javarush! Но у меня немного накипело! Я не знаю как все устроено в javarush, но хотелось бы верить, что есть команда, которая следит за тем чтобы задачи были составлены правильно и правильно валидировались, исходя из требований, поставленных в задаче. Уже не первый раз я натыкаюсь на простые задачи, на которые трачу чертову кучу времени из-за плясок с бубном вокруг валидатора. Вместо того чтобы идти дальше, я трачу время на многочасовой дебаг. Первый раз когда я наткнулся на такую задачу, я написал в поддержку и попросил обратить на это внимание. Решая последующие задачи, я смирился с тем что, иногда просто нужно принести жертву валидатору, чтобы умилостивить его. И ЭТО НЕНОРМАЛЬНО! Что пошло не так в этот раз - в условиях задачи четко сказано "alert(double value) - для чисел (дробные числа разделяются точкой)". ОК. Поставил условие на то что если в значении obj есть ТОЧКА, то ПАРСИМ и если все ОК, то передем double value в alert(double value), если парсинг выкидывает exception, то передаем String value в alert(String value), если ТОЧКИ НЕТ, то передаем в alert(String value). Все что угодно, лишь бы соблюсти УСЛОВИЯ задачи. Результат: 20 минут кодинга, 3 часа дебага и не проходит валидация по 4 ПУНКТУ! Все отлично парсится и передается куда надо, единственный момент, когда НЕТ точки в строке, у нас всегда value уходит в alert(String value), мне же ЧЕТКО сказали, что вот мол если точка, то double, если нет точки, то String. Убрал проверку на ТОЧКУ и все работает 🤬 ИТОГ: такое чувство, что когда-то написали задачи и забили на дальнейшую поддержку и доведение до ума, неужели ни у кого никогда не бывает таких проблем из-за неправильно сформулированного задания? Я уверен, что бывает. Комменты некоторых задач завалены жалобами, но javarush почему-то остается равнодушным к фидбеку от своих учеников и это печально. Потому что завтра если кто-то спросит у меня как мне javarush, я скажу что проект классный, но задачки там абсолютно не проработаны.
Rina16 уровень
понедельник, 06:21
+100500 ужасно обидно тратить время на ритуальные пляски вокруг валидатора в задачах где соблюдена суть, а иногда ради того, чтобы пропихнуть в валидатор приходиться рушить красивое решение. И это вместо того, чтобы дальше прорабатывать курс. Хотя, здесь тоже поддержу, проект действительно стоящий
Evgen15 уровень, Гродно
9 октября, 22:53
Сильно мозги поработали, решал так: 1. //регулярное выражение сравнивает с текстом 2. //обрезаем по знакам & строку и заносим в массив 3. делаем //регулярное выражение до знака = и //регулярное выражение после знака = (я думаю есть более короткие пути, однако...) 4. //LinkedHashMap хранит элементы типа “ключ – значение” в том порядке, в котором они были добавлены!!! Вот тут не сразу пришел к решению, сначала пробовал юзать HashMap и TreeMap, но LinkedHashMap то, что надо! 5. //выводим ключи из нашей Map 6. //проходим по Map и выводим либо Double (сначала делал проверку на '.', НО не надо! просто Double.parseDouble) либо String в противном случае выводим 7. Спасибо за внимание
Санчоус16 уровень, Киев
8 октября, 08:22
Задача супер, потратил достаточно много времени, но отлично понял принцип работы методов класса String, не стал лезть наперед, и вникать в регулярные выражения. Для решения достаточно методов substring(), contains(), и indexOf() (который можно использовать в качестве аргумента для substring) ну я еще использовал метод isEmpty. Напоминаю, все методы доступны для переменных типа String.
Andrii16 уровень
позавчера, 11:24
тоже использовал методы класса String. Правда еще использовал разбиение строки методом - split. А также uri.getQuery() для вычленения параметров из ссылки.
Евгений Буш19 уровень, Санкт-Петербург
2 октября, 11:08
Да уж. Собрал конструкцию на паре for и паре if. Больше такой хренью страдать не буду :) - это главный вывод из решения задачи.
Евгений18 уровень, Новосибирск
2 октября, 01:23
Отличное задание.
Ihor17 уровень, Киев
1 октября, 15:02
3 часа... но зато разобрался со строками :) проблемой для меня было понять что параметры - это фрагменты строки разделенные &, хотя это и было сказано в задании... сперва нужно убирать все с лева от ? потом переводить в массив используя разделитель & после использовать if при выводе и делить строку до = и после...
ВасяКот17 уровень, новосиб
28 сентября, 13:31
5 часов мучений и вот оно))весь затык в требовании №5.Но главное,по ходу выполнение задачи пришлось столкнуться со split,погуглить наконец про регулярные выражения,и найти очень простой разбор строки URl с помощью org.apache.hc.client5.http.utils.URLEncodedUtils.Давно столько знаний после решения задачки не прибавлялось))
steff16 уровень, Воронеж
24 сентября, 10:30
Привет комрады! Хочу рассказать Вам почему я решил задачу с первой попытки, ну не сразу конечно, немного покопался. Еще будучи на нулевом уровне я пытался распарсить чужой блокнотный файл чтобы построить графики, я очень долго мудрил не зная java и у меня был стимул - очень хотелось это сделать, было полно энтузиазма, хотелось делать нужное преобразование не используя exel (ну не нравится он мне). И я сделал что надо, а там как раз было много действий со строками. В общем нужно придумывать себе задачи помимо тех что мы решаем. Ведь творить для себя это всегда интересно.
Alexander Taluevsky17 уровень, Минск
24 сентября, 03:32
после того как прочитал условие - на недели две запил забил на javarush))) никак не решался сесть за эту задачу, а пропускать категорически не хотел...вот сегодня таки решил - тупо на if и for, два с половиной часа мучений, четвертая попытка