Наверное я не все условия понял до конца. Но в консоль выводит все согласно условию, валидатор ругается на последние два условия. Может быть я подгонял решение под образец, вобщем нужна помощь, понятия не имею где проблема. За громоздкость и трудночитаемость кода прошу не ругать)
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;
public class Solution {
public static void main(String[] args) {
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = null;
List<String> list = new ArrayList<>();
try {
str = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
int index1 = str.indexOf('?');
int equalsIndex = str.indexOf('=');
String strFirst = str.substring(index1 + 1, equalsIndex);
list.add(strFirst);
int index = str.indexOf('&');
int indexFirstEquals = str.indexOf('=');
int checkObj = str.indexOf("obj");
String strForDouble = str.substring(indexFirstEquals + 1, index);
int doubleCheck = strForDouble.indexOf('.');
String str1 = null;
while (true) {
index1 = str.indexOf('&', index + 1);
if (index1 == -1) break;
str1 = str.substring(index + 1, index1);
list.add(str1);
index = index1;
}
int lastIndex = index;
index = str.indexOf("=Amigo");
str = str.substring(lastIndex + 1, index);
list.add(str);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
if (doubleCheck != -1 && checkObj != -1) {
System.out.println();
double a = Double.valueOf(strForDouble);
alert(a);
}
if (doubleCheck == -1 && checkObj != -1) {
System.out.println();
alert(strForDouble);
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}