Вроде как все по условию:
1) вывести названия параметров в порядке следования в запросе
2) вывести double alert если у нас число может быть корректно приведено к double, иначе - string alert.
Кто-то видит проблему?
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.HashMap;
import java.util.List;
import java.util.Map;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//add your code here
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String ttStr = br.readLine();
ttStr = ttStr.substring(ttStr.indexOf("?")+1);
Map<String, String> ttMap = new HashMap<>();
List<String> ttList = new ArrayList<>();
while (ttStr.indexOf("&") != -1) {
String nextStr = ttStr.substring(0, ttStr.indexOf("&"));
if (nextStr.indexOf("=") != -1) {
ttMap.put(nextStr.substring(0, nextStr.indexOf("=")), nextStr.substring(nextStr.indexOf("=") + 1));
ttList.add(nextStr.substring(0, nextStr.indexOf("=")));
} else {
ttMap.put(nextStr, "");
ttList.add(nextStr);
}
ttStr = ttStr.substring(ttStr.indexOf("&") + 1);
if (ttStr.indexOf("&") == -1) {
if (ttStr.indexOf("=") != -1) {
ttMap.put(ttStr.substring(0, ttStr.indexOf("=")), ttStr.substring(ttStr.indexOf("=") + 1));
ttList.add(ttStr.substring(0, ttStr.indexOf("=")));
} else {
ttMap.put(ttStr, "");
ttList.add(ttStr);
}
}
}
for (String ttListString : ttList) {
System.out.print(ttListString + " ");
}
System.out.println("");
for (Map.Entry<String, String> ttEntry : ttMap.entrySet()) {
double d;
try {
d = Double.parseDouble(ttEntry.getValue());
alert(d);
} catch (Exception e) {
alert(ttEntry.getValue());
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}