Вывод верный, в обоих случаях, но ему что-то не нравится. В чем тут проблема? Где ошибка?
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
/*
Парсер реквестов
*/
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();
ArrayList<String> list = new ArrayList<String>(); //лист для строк до равно
ArrayList<String> list1 = new ArrayList<String>(); //лист для строк после равно
//String s = "http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo";
String[] strs = s.split("\\?"); //отделил до ?
if (strs[1].contains("obj")) // проверка, есть ли obj
{
strs = strs[1].split("&"); //отделил до &
// этот блок отвечает за добавление в листы, в зависимости до равно или после
for (int i=0; i<strs.length; i++) {
String newS = strs[i];
String[] newMas = newS.split("=");
try
{
list1.add(newMas[1]);
list.add(newMas[0]);
}
catch (Exception e)
{
list.add(newMas[0]);
}
}
// этот блок отвечает за вывод list
for (int i=0; i<list.size(); i++)
{
System.out.print(list.get(i)+" ");
}
System.out.println();
// вывод 2 листа со значениями и проверка Double или String
for (int i=0; i<list1.size(); i++)
{
String stroka = list1.get(i);
try
{
double a = Double.parseDouble(stroka);
alert(a);
}
catch (Exception e)
{
alert(stroka);
}
}
}
else
{
// тут все аналогично с предыдущим, кроме проверки на Double или String
strs = strs[1].split("&");
for (int i=0; i<strs.length; i++) {
String newS = strs[i];
String[] newMas = newS.split("=");
try
{
list1.add(newMas[1]);
list.add(newMas[0]);
}
catch (Exception e)
{
list.add(newMas[0]);
}
}
for (int i=0; i<list.size(); i++)
{
System.out.print(list.get(i)+" ");
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}