ввод:
http://javarush.ru/alpha/index.html?lvl=15&obj=3.1444&obj=lsdkfg&asdkjg=objjsd&obj=14&view&name=Amigo
вывод:
lvl obj obj asdkjg obj view name
double: 15.0
double: 3.1444
String: lsdkfg
String: objjsd
double: 14.0
String: Amigo
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.Arrays;
import java.util.List;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//add your code here
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String str = bufferedReader.readLine();
String substr = "";
List<String> valueList1 = new ArrayList<>();
List<String> valueList2 = new ArrayList<>();
int index = 0;
//ищу в ссылке знак ? и обрезаю строку до этого знака включительно
while (str.length() > index){
if (str.charAt(index) == '?'){
str = str.substring(index + 1);
break;
}
index++;
}
//разбиваю строку на параметры по символу &
List<String> strList = new ArrayList<>(Arrays.asList(str.split("&")));
//в цикле перебираю элементы нового массива
for (String string : strList){
//разбиваю строку на параметры по символу = и передаю полученные значения
List<String> valueList3 = new ArrayList<>(Arrays.asList(string.split("=")));
valueList1.add(valueList3.get(0));
if (valueList3.size() == 2){
valueList2.add(valueList3.get(1));
}
}
//вывожу массив параметров
for (String string : valueList1){
System.out.print(string + " ");
}
System.out.println();
//вывожу массив значений
for (String string : valueList2){
try {
alert(Double.parseDouble(string));
} catch (NumberFormatException e) {
alert(string);
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}