Вроде и через регексы, и через try-catch пробовал, у меня все работает, а валидатору все как горох об стену ))
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String url = reader.readLine();
int index = 0;
int start = url.indexOf('?', index);
StringJoiner sb = new StringJoiner(" ");
if (start >= 0) {
index = start;
String param = url.substring(start + 1, url.length());
String[] parameters = param.split("&");
List<String> objects = new ArrayList<>();
for (String parameter : parameters) {
if (parameter.contains("=")) {
String[] div = parameter.split("=");
if (div[0].equals("obj")) objects.add(div[1]);
sb.add(div[0]);
}
}
System.out.println(sb.toString());
for (String obj : objects) {
if (obj.matches("[-+]?([0-9]*[.]?[0-9]*)")) alert(Double.parseDouble(obj));
else alert(obj);
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}