Метод alert(double value) вызывается для obj = 3.14, а валидатор пишет, что программа должна вызвать метод alert(double value). Опять надо искать костыль для валидатора или я туплю?
package com.javarush.task.task15.task1527;
/*
Парсер реквестов
*/
import java.util.*;
import java.io.*;
public class Solution {
public static void main(String[] args) {
//add your code here
String url="";
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
url = reader.readLine();
reader.close();
}
catch (IOException e) {
e.printStackTrace();
}
Map<String, String> arguments = urlRequestsParser(url);
for (Map.Entry<String, String> entry : arguments.entrySet()) {
System.out.print(entry.getKey()+" ");
}
System.out.println();
if (arguments.containsKey("obj")) {
String str = arguments.get("obj");
if (str.matches("^-?\\d+\\.\\d+$")) {
alert(Double.parseDouble(str));
}
else {
alert(str);
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
public static Map<String, String> urlRequestsParser(String url) {
Map<String, String> map = new LinkedHashMap<>();
String str = url.substring(url.indexOf("?")+1);
List<String> arguments = new ArrayList<>();
str += "&";
while (!str.isEmpty()) {
arguments.add(str.substring(0,str.indexOf("&")));
str = str.substring(str.indexOf("&")+1);
}
for (String data : arguments) {
if (data.contains("=")) {
map.put(data.substring(0,data.indexOf("=")),data.substring(data.indexOf("=")+1));
}
else {
map.put(data, null);
}
}
return map;
}
}