package com.javarush.task.task15.task1527;
/*
Парсер реквестов
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.concurrent.ExecutionException;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String url = reader.readLine();
String str = (url.substring(url.indexOf('?') + 1));
boolean obj = str.startsWith("obj=");
try {
String str1 = str.substring(str.indexOf('?') + 1, str.indexOf('='));
String str2 = str.substring(str.indexOf('&') + 1, str.lastIndexOf('&'));
String str3 = str.substring(str.lastIndexOf('&') + 1, str.lastIndexOf('='));
System.out.println(str1 + " " + str2 + " " + str3);
} catch (Exception ex) {
String str1 = str.substring(str.indexOf('?') + 1, str.indexOf('='));
String str3 = str.substring(str.lastIndexOf('&') + 1, str.lastIndexOf('='));
System.out.println(str1 + " " + str3);
}
if (obj) {
String value = url.substring(url.indexOf('=') + 1, url.indexOf('&'));
try {
double number = Double.parseDouble(value);
alert(number);
} catch (Throwable ex) {
alert(value);
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}
Sergei Voitenkov
1 уровень
Прошу оценки знатоков. Можно ли таким способом решить задачу ?
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anyone
9 мая 2020, 10:56
Маловероятно.
Как программа будет себя вести, если количество параметров(то что после ?) во входящей строке будет не 3, а 5? если obj= будет идти не сразу после "?" а вторым или третьим параметром?
Посмотри в сторону метода string.split - позволяет разбивать строку на подстроки по определенному разделителю.
0