Пробовал решить 3мя разными способами. Но валидор не пропускает по 3му пункту...
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedHashMap;
import java.util.Map;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
// http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
// http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
BufferedReader reader = null;
String url = null;
try {
reader = new BufferedReader(new InputStreamReader(System.in));
url = reader.readLine();
} catch (IOException e) {
e.getMessage();
} finally {
reader.close();
}
String word = "";
double buffer;
int inputUrl = url.indexOf("?") + 1;
String outputUrl = url.substring(inputUrl);
String[] words = outputUrl.split("&");
Map<String, String> content = new LinkedHashMap<>();
for(String s : words) {
if(s.contains("=")) {
int i = s.indexOf("=");
String s1 = s.substring(0, i);
String s2 = s.substring(i + 1);
content.put(s1, s2);
} else {
content.put(s, null);
}
}
for(Map.Entry<String, String> pair : content.entrySet()) {
word += pair.getKey() + " ";
}
String outputWord = word.trim();
alert(outputWord);
for(Map.Entry <String, String> pair1 : content.entrySet()) {
if(pair1.getKey().equals("obj")) {
try {
buffer = Double.parseDouble(pair1.getValue());
alert(buffer);
} catch (NumberFormatException e) {
e.getMessage();
} catch (NullPointerException ex) {
ex.getMessage();
}
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}