Выводит все как надо по условию задачи. А валидатор не принимает
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
package com.javarush.task.task15.task1527;
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 IOException {
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
int index1 = s.indexOf("?"); //определяем индекс начала параметров
String s1 = s.substring(index1+1); //отрезаем все до ? включительно
ArrayList<String> list = new ArrayList<>(); // записываем в массив все параметры со значениями
for (String r : s1.split("&")) {
list.add(r);
}
String result ="";
for (int i=0; i<list.size(); i++){ //пробегаемся по массиву и отделяем значения от параметров выводим параметры в консоль
if (list.get(i).contains("=")) result=result+(list.get(i).substring(0,list.get(i).indexOf("=")))+" ";
else result=result+(list.get(i))+" ";
}
System.out.print(result.substring(0,result.length()-1));
System.out.println();
//далее понятно если obj проверяем если double, то alert(double value) если нет, то alert(String value)
try {
for (int i=0; i<list.size(); i++){
if (list.get(i).substring(0,list.get(i).indexOf("=")).equals("obj"))
try{
double d = Double.parseDouble(list.get(i).substring(list.get(i).indexOf("=")+1,list.get(i).length()));
alert(d);
}
catch (Exception e)
{
alert(list.get(i).substring(list.get(i).indexOf("="),list.get(i).length()));
}
}
}
catch (IndexOutOfBoundsException e)
{
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}