В случае URL:
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
Вывод:
obj name double: 3.14
В случае URL:
http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
Вывод:
lvl view name
Что тут не так?? и когда метод alert c параметром String должен вызываться??
package com.javarush.task.task15.task1527;
import javax.swing.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//add your code here
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String url = buffer.readLine();
//url = "http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo";
//url = "http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo";
url = url.substring(url.indexOf("?") + 1);
String[] mySplit = url.split("&");
System.out.println(Arrays.toString(mySplit));
String firstSplit = mySplit[0].substring(mySplit[0].indexOf("=")+1);
ArrayList<String> list = new ArrayList<>();
boolean isDouble = false;
String doubleText = "";
for(int i = 0; i < mySplit.length; i++){
if(mySplit[i].indexOf("=") >= 0){
String[] tmp = mySplit[i].split("=");
String tmp1 = tmp[0];
if(tmp1.indexOf("obj") >= 0 && i == 0){
isDouble = true;
doubleText = mySplit[i].substring(mySplit[0].indexOf("=")+1);
}
list.add(tmp1);
}else{
String tmp2 = mySplit[i];
list.add(tmp2);
}
}
for(String s : list)
System.out.print(s+" ");
if(isDouble){
if(!doubleText.isEmpty()){
if(doubleText.indexOf(".") >= 0){
alert(Double.parseDouble(doubleText));
}
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}
//http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
//http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo