Выводит всё как нужно, но валидацию не проходит.
package com.javarush.task.task15.task1527;
/*
Парсер реквестов
*/
import java.util.ArrayList;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String url =scanner.nextLine();
String value="";
ArrayList<String> list = new ArrayList<>();
ArrayList<String> valuesOfParameters = new ArrayList<>();
ArrayList<Double> valuesOfDouble = new ArrayList<>();
ArrayList<String> valuesOfString = new ArrayList<>();
for (String x:url.split("\\?",2)){//оставляем только вторую часть после "?"
value = x;
}
for (String x:value.split("&")) {//сплитим по "&" и добавляем в лист
list.add(x);
}
for (String x: list){
if (x.contains("=")) {//если есть "=" тогда будем сплитить по параметру
ArrayList<String> list1 = new ArrayList<>();
for (String y : x.split("=", 2)) {//достаём с листа и сплитим по "="
list1.add(y);
}
valuesOfParameters.add(list1.get(0));//добавляем первую часть в лист, вторую часть проверяем на double
if (list1.get(0).equals("obj")){
if (list1.get(1).contains(".")) {//если есть "." значит может быть и double, пробуем конвертировать
try {
Double qwert = Double.parseDouble(list1.get(1));//если да то выводим double
valuesOfDouble.add(qwert);
} catch (NumberFormatException e) {//если нет то выводим строку
valuesOfString.add(list1.get(1));
}
}
}
}else valuesOfParameters.add(x);
}
for (String x: valuesOfParameters) {
System.out.print(x + " ");
}
System.out.println();
for (double s:valuesOfDouble) {
alert(s);
}
for (String s:valuesOfString) {
alert(s);
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}