Злой валидатор опять не пускает мое гениальное (благодаря помощи человека поумнее) решение :(
Все выводит как надо, что ему не нравится?
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Парсер реквестов
URL содержит минимум 1 параметр.
Выводить параметры нужно в той же последовательности, в которой они представлены в URL.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) - для чисел (дробные числа разделяются точкой)
alert(String value) - для строк
Обрати внимание на то, что метод alert необходимо вызывать ПОСЛЕ вывода списка всех параметров на экран.
(Параметры идут после ? и разделяются &, например, lvl=15).
http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
*/
public class Solution {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
String input = reader.readLine();
int a = input.indexOf("?"); //array[a-1]
String param1 = input.substring(a+1);
String[] m = param1.split("&");
for (String k : m) {
if (k.contains("=")){
String[] v = k.split("=");
String z = v[0];
System.out.print(z + " ");
}
}
for (String k : m) {
if (k.contains("obj=")) {
if (k.contains(".")) {
String[] w = k.split("obj=");
String z = w[1];
double d = Double.parseDouble(z);
alert(d);
} else {
String[] w = k.split("obj=");
String z = w[1];
alert(z);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void alert(double value) {
System.out.println("\ndouble: " + value);
}
public static void alert(String value) {
System.out.println("\nString: " + value);
}
}
оправданиячтения, и обычно очень ОЧЕНЬ красиво называю переменные, но это мой 6й заход с нуля на этот парсер и красота переменных была поставлена на паузу ради ускорения процесса!!