Здравствуйте. Тестовый пример:
http://javarush.ru/alpha/index.html?lvl=15&view&name=Aobjmigo&obj=3.14&name=&obj=djsdcd&oobj=3.0&obj=1&obj=2.3&obj=aaa
lvl view name obj name obj oobj obj obj obj
double 3.14
String djsdcd
double 1.0
double 2.3
String aaa
Код:
package com.javarush.task.task15.task1527;

import javafx.util.Pair;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

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

public class Solution {
    public static void main(String[] args) throws IOException {
        //add your code here

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String inputString = reader.readLine();

        //String inputString = "http://javarush.ru/alpha/index.html?lvl=15&view&name=Aobjmigo&obj=3.14&name=&obj=djsdcd&oobj=3.0&obj=1&obj=2.3&obj=aaa";

        List<Pair<String, String>> parsedPairsList = Parse(inputString);

        for (Pair<String, String> pair: parsedPairsList) {
            String key = pair.getKey();
            System.out.print(key + " ");
        }
        System.out.println();

        for (Pair<String, String> pair: parsedPairsList) {
            String key = pair.getKey();

            if (!key.equals("obj"))
                continue;

            String valueForPrint = pair.getValue();
            try {
                double d = Double.parseDouble(valueForPrint);
                alert(d);
            } catch (RuntimeException e) {
                alert(valueForPrint);
            }
        }
    }

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

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

    public static List<Pair<String, String>> Parse(String inputString) {

        ArrayList<Pair<String, String>> parsedPairsList = new  ArrayList<Pair<String, String>>();

        try {
            URL url = new URL(inputString.toLowerCase());
            String urlParameters = url.getQuery();

            while (urlParameters.length() > 0) {
                // поиск пары ключ-значение;
                // найденная пара удаляется из urlParameters
                String strPairKeyValue;
                int indexSeparatorNextPair = urlParameters.indexOf('&');
                if (indexSeparatorNextPair == -1) {
                    strPairKeyValue = urlParameters;
                    urlParameters = "";
                } else {
                    strPairKeyValue = urlParameters.substring(0, indexSeparatorNextPair);
                    urlParameters = urlParameters.substring(indexSeparatorNextPair + 1);
                }
                // пара ключ-значение найдена

                // выделение ключа и значения
                int indexSeparatorKeyToValue = strPairKeyValue.indexOf('=');
                String key, value = "";
                if (indexSeparatorKeyToValue == -1) {
                    key = strPairKeyValue;
                } else {
                    key = strPairKeyValue.substring(0, indexSeparatorKeyToValue);
                    value = strPairKeyValue.substring(indexSeparatorKeyToValue + 1);
                }

                Pair<String, String> pair = new Pair<String, String>(key, value);
                parsedPairsList.add(pair);
            }

            return parsedPairsList;
        }
        catch (Exception e) {
            return parsedPairsList;
        }
    }
}