Написал код к решению задачи, она довольно простая, но вот мое решение мне не нравится, уверен, что можно сделать проще, но вот как пока не знаю.
Надеюсь, что кто-то подскажет, что почитать или в каком направлении переписать код, чтобы он получился меньше и понятнее.
Считать с консоли URL-ссылку. Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15). URL содержит минимум 1 параметр. Выводить параметры нужно в той же последовательности, в которой они представлены в URL.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) — для чисел (дробные числа разделяются точкой)
alert(String value) — для строк
Обрати внимание на то, что метод alert необходимо вызывать ПОСЛЕ вывода списка всех параметров на экран.
public class Solution {
public static void main(String[] args) throws IOException{
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String URL = reader.readLine();
String secURL = URL.substring(URL.indexOf("?")+1,URL.length());
String[] arrURL = secURL.split("\\&");
for(String s: arrURL){
if(s.contains("=")) {
System.out.print(s.substring(0, s.indexOf("="))+" ");
}else {
System.out.print(s + " ");
}
}
for(String s: arrURL){
if(s.contains("obj")) {
System.out.println();
try {
alert(Double.parseDouble(s.substring(s.indexOf("=")+1,s.length())));
}catch (Exception e){
alert(s.substring(s.indexOf("=")+1,s.length()));
}
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ