import java.net.MalformedURLException;
import java.net.URL;
import java.util.*;
public class Solution {
public static void main(String[] args) throws MalformedURLException {
Scanner sc = new Scanner(System.in);
URL url = new URL(sc.nextLine());
sc.close();
String[] arrayParam;
String[] subArray;
String[] thirdArray;
List<String> list = new ArrayList<>();
String s = url.getQuery(); // в строке параметры URL с их значениями ( lvl=15&view&name=Amigo )
arrayParam = s.split("&"); // тут массив параметров с их значениями (без &): lvl=15 / view / name=Amigo
// Добавляем в коллекцию только ИД параметров БЕЗ из значений
for (String str: arrayParam) {
subArray = str.split("=");
list.add(subArray[0]);
}
// Выводим на печать содержимое коллекции (список ИД параметров)
for (int i = 0; i < list.size(); i++) {
if (i == (list.size() - 1)){
System.out.print(list.get(i)); // выводит последний элемент коллекции БЕЗ добавления пробела
} else {
System.out.print(list.get(i) + " ");
}
}
System.out.println();
// Если URL содержит параметр obj
for (String str : arrayParam){
if (str.startsWith("obj")){
thirdArray = str.split("=");
if (thirdArray[1].contains(".")){
try {
Double d = Double.parseDouble(thirdArray[1]);
alert(d);
} catch (Exception e) {
alert(thirdArray[1]);
}
}
}
}
}
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;
/*
Парсер реквестов
Считать с консоли URL-ссылку.
Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15).
URL содержит минимум 1 параметр.
Выводить параметры нужно в той же последовательности, в которой они представлены в URL.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) - для чисел (дробные числа разделяются точкой)
alert(String value) - для строк
Обрати внимание на то, что метод alert необходимо вызывать ПОСЛЕ вывода списка всех параметров на экран.
Пример 1
Ввод:
http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
Вывод:
lvl view name
Пример 2
Ввод:
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
Вывод:
obj name
double: 3.14
Требования:
1. Программа должна считывать с клавиатуры только одну строку.
2. Класс Solution не должен содержать статические поля.
3. Программа должна выводить данные на экран в соответствии с условием.
4. Программа должна вызывать метод alert с параметром double в случае, если значение параметра obj может быть корректно преобразовано в число типа double.
5. Программа должна вызывать метод alert с параметром String в случае, если значение параметра obj НЕ может быть корректно преобразовано в число типа double.
*/
import java.net.MalformedURLException;
import java.net.URL;
import java.util.*;
public class Solution {
public static void main(String[] args) throws MalformedURLException {
Scanner sc = new Scanner(System.in);
URL url = new URL(sc.nextLine());
sc.close();
String[] arrayParam;
String[] subArray;
String[] thirdArray;
List<String> list = new ArrayList<>();
String s = url.getQuery(); // в строке параметры URL с их значениями ( lvl=15&view&name=Amigo )
arrayParam = s.split("&"); // тут массив параметров с их значениями (без &): lvl=15 / view / name=Amigo
// Добавляем в коллекцию только ИД параметров БЕЗ из значений
for (String str: arrayParam) {
subArray = str.split("=");
list.add(subArray[0]);
}
// Выводим на печать содержимое коллекции (список ИД параметров)
for (int i = 0; i < list.size(); i++) {
if (i == (list.size() - 1)){
System.out.print(list.get(i)); // выводит последний элемент коллекции БЕЗ добавления пробела
} else {
System.out.print(list.get(i) + " ");
}
}
System.out.println();
// Если URL содержит параметр obj
for (String str : arrayParam){
if (str.startsWith("obj")){
thirdArray = str.split("=");
if (thirdArray[1].contains(".")){
try {
Double d = Double.parseDouble(thirdArray[1]);
alert(d);
} catch (Exception e) {
alert(thirdArray[1]);
}
}
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}