По String корректно отрабатывает, решение масштабируемое, от null есть защита. Куда смотреть?
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
Map<String,String> hashmap = new HashMap<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String url = reader.readLine();
Pattern pattern = Pattern.compile("\\?.+$");
Matcher matcher = pattern.matcher(url);
while(matcher.find()){
String substring = url.substring(matcher.start() + 1, matcher.end());
String[] ampersandChar = substring.split("&");
for (String ampersands: ampersandChar
) {
String[] equalChar = ampersands.split("=");
hashmap.put(equalChar[0], equalChar[equalChar.length -1]);
}
for(Map.Entry<String ,String> entry: hashmap.entrySet()){
System.out.printf("%s ", entry.getKey());
}
System.out.println();
if(hashmap.containsKey("obj")){
try{
alert(Double.parseDouble(hashmap.get("obj")));
} catch (NumberFormatException e){
alert(hashmap.get("obj"));
}
}
}
//напишите тут ваш код
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
Map<String,String > hashmap = new HashMap<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String url = reader.readLine();
//String regex = "\\?.+$";
Pattern pattern = Pattern.compile("\\?.+$");
Matcher matcher = pattern.matcher(url);
while(matcher.find()){
String substring = url.substring(matcher.start() + 1, matcher.end());
String[] ampersandChar = substring.split("&");
for (String ampersands: ampersandChar
) {
String[] equalChar = ampersands.split("=");
hashmap.put(equalChar[0], equalChar[equalChar.length -1]);
}
if(hashmap.containsKey("obj")){
for(Map.Entry<String ,String> entry: hashmap.entrySet()){
System.out.printf("%s ", entry.getKey());
}
System.out.println();
try{
alert(Double.parseDouble(hashmap.get("obj")));
} catch (NumberFormatException e){
alert(hashmap.get("obj"));
}
} else {
for(Map.Entry<String ,String> entry: hashmap.entrySet()){
System.out.printf("%s ", entry.getKey());
}
System.out.println();
}
}
//напишите тут ваш код
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}