Парсер реквестов
Считать с консоли URL-ссылку.
Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15).
URL содержит минимум 1 параметр.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) — для чисел (дробные числа разделяются точкой)
alert(String value) — для строк
Обрати внимание на то, что метод alert необходимо вызывать ПОСЛЕ вывода списка всех параметров на экран.
Пример 1
Ввод:
http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
Вывод:
lvl view name
Пример 2
Ввод:
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
Вывод:
obj name
double 3.14
Требования:
1. Программа должна считывать с клавиатуры только одну строку.
2. Программа должна выводить данные на экран в соответствии с условием.
3. Программа должна вызывать метод alert с параметром double в случае, если значение параметра obj может быть корректно преобразовано в число типа double.
4. Программа должна вызывать метод alert с параметром String в случае, если значение параметра obj НЕ может быть корректно преобразовано в число типа double.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

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

public class Solution {
    public static void main(String[] args) throws Exception {
        //add your code here
        String url;
        String params;
        String tmp;
        int ind;
        ArrayList<String> objParams = new ArrayList<>();
        String [] arrParams;
        BufferedReader br;

        br = new BufferedReader(new InputStreamReader(System.in));
        url = br.readLine();//считали с консоли url ссылку
        ind = url.indexOf('?');//получили индекс ?-знака
        params = url.substring(ind+1,url.length());//забираем параметры из стринга
        arrParams = params.split("&");//складываем параметры в массив
        for (String s:arrParams){//перебираем массив параметров
            ind = s.indexOf("=");//ищем знак равенства в параметре
            if(ind>0) {//если параметр содержит знак =
                tmp = s.substring(0, ind);//забираем имя до знака
                System.out.print(tmp + " ");//печатаем в консоль
                    if (tmp.contains("obj"))//если имя содержит obj
                    objParams.add(s.substring(ind + 1));//заносим его параметр в аррайлист
            }
            else
                System.out.print(s + " ");//если нет знака равенства печатаем в консоль целиком

        }
        System.out.println();
        for (String v: objParams){
            if(v.contains(".")){//если параметр содержит точку
                try {
                    alert(Double.parseDouble(v));//пробуем его конвертировать в дабл и, если успешно - печатаем в консоль
                }catch (NumberFormatException e){
                    alert(v);//при невозможности конвертации печатаем как стринг
                }
            }
        }
    }

    public static void alert(double value) {
        System.out.println("double " + value);
    }

    public static void alert(String value) {
        System.out.println("String " + value);
    }
}