Поможайте друзья!
Всю гологу сломал :-B
Мое решение ниже.
Никак не пойму почему не выдает как надо.
В самом конце не получается-где "если можно преобразовать корректно в double -то кидаем в один alert. Если нет-в другой".
У меня постоянно выводит:
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
obj name
String 3.14
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.Map;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
int position = 0;
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
char[] array = s.toCharArray();
for (int i = 0; i < array.length; i++) {
char ch = array[i];
if (ch == '?') {
position = i+1; //выяснили с какой позиции появляется знак "?"
}
}
String result = s.substring(position); //оставили только кусок строки, отбросив всё, что до "?"
String[] params = result.split("&");
Map<String, String> map = new HashMap<String, String>();
for (String param : params) {
String name = param.split("=")[0];
if(param.contains("="))
{
String value = param.split("=")[1];
map.put(name, value);
}
else
{
map.put(name, null);
}
}
for (Map.Entry<String, String> pair : map.entrySet()) {
String name = pair.getKey();
//String value = pair.getValue();
System.out.print(name + " ");
}
for (Map.Entry<String, String> pair2 : map.entrySet()) {
String name2 = pair2.getKey();
if (name2.equals("obj"))
{
String value = pair2.getValue();
Double d = Double.parseDouble(value);
if (d%1==0) {
System.out.println();
alert(d);
}
else
{
System.out.println();
alert(value);
}
}
}
}
public static void alert(double value) {
System.out.println("double " + value);
}
public static void alert(String value) {
System.out.println("String " + value);
}
}