Ольга, что не так подскажите пожалуйста )
Не проходит по последним двум условиям
Для такой строки
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo&obj=20000&obj=652.23&342&weds&Name=Akella&obj=0.&sdf
вывод
obj name obj obj 342 weds Name obj sdf
double: 3.14
String: 20000
double: 652.23
double: 0.0
http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
lvl view name
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.ArrayList;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) {
//add your code here
ArrayList <String> parametrs = new ArrayList<>();
try {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = reader.readLine();
parametrs.add(str.substring(str.indexOf('?') + 1, str.indexOf('&'))); //добавляемв массив первый параметр со значением
str = str.replace(str.substring(str.indexOf('?') + 1, str.indexOf('&')), ""); //удаляем первый параметр после знака ? (это лишнее)
str = str.replace(str.substring(0, str.indexOf('?')), ""); //удаляем все до знака ?
str = str.replace(str.substring(str.indexOf('?'), (str.indexOf('&'))+1), "");//удаляем знак ?
for (String retval : str.split("&")) {//разбиваем и добавляем
parametrs.add(retval);
}
} catch (Exception e){}
ArrayList <String> dubls = new ArrayList<>();
for (int i = 0; i < parametrs.size(); i++) {
String param = parametrs.get(i);
if (param.contains("=")) {// если в паре есть значение параметра то осекаем знаечние и доб в массив
dubls.add(param.substring(0, param.indexOf('=')));
}
else {dubls.add(param);}// только зн, доб в массив
}
//System.out.println(parametrs);
for (int i = 0; i < dubls.size(); i++) {
String d = dubls.get(i);
System.out.print(d+" "); }
System.out.println("");
for (int i = 0; i < parametrs.size(); i++) {
String obj = parametrs.get(i);
if (obj.contains("obj") && (obj.contains("."))) { // contains - пров есть ли obj в паре, (obj.matches("^\\d+$")) &&
obj = obj.replace(obj.substring(0, (obj.indexOf('='))+1), ""); //удаляем все до знака = включительно
alert((Double.parseDouble(obj)));
}
if ( obj.contains("obj") && (!(obj.contains("."))) ) // если обж не содержит точку, обрезаем и вызываем метод alert
{ obj = obj.replace(obj.substring(0, (obj.indexOf('='))+1), "");
alert(obj);
}
else {continue;}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}