Advertisement
tehThomas

JavaRush.task1527

Jun 19th, 2018
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.91 KB | None | 0 0
  1. package com.javarush.task.task15.task1527;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.LinkedHashMap;
  7.  
  8. /*
  9. Парсер реквестов
  10. Считать с консоли URL-ссылку.
  11. Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15).
  12. URL содержит минимум 1 параметр.
  13. Выводить параметры нужно в той же последовательности, в которой они представлены в URL.
  14. Если присутствует параметр obj, то передать его значение в нужный метод alert.
  15. alert(double value) - для чисел (дробные числа разделяются точкой)
  16. alert(String value) - для строк
  17.  
  18. Пример 1
  19.  
  20. Ввод:
  21. http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
  22.  
  23. Вывод:
  24. lvl view name
  25.  
  26. Пример 2
  27.  
  28. Ввод:
  29. http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
  30.  
  31. Вывод:
  32. obj name
  33. double 3.14
  34.  
  35. */
  36.  
  37. public class Solution {
  38.     public static void main(String[] args) {
  39.         //add your code here
  40.         try {
  41.             BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  42.             String s = reader.readLine();
  43.             reader.close();
  44.             String params = s.substring(s.indexOf("?") + 1);
  45.             String[] splitParts = params.split("&");
  46.  
  47.             LinkedHashMap<String, String> parameters = new LinkedHashMap<String, String>();
  48.  
  49.             for (int i = 0; i < splitParts.length; i++) {
  50.                 int posEqualChar = splitParts[i].indexOf("=");
  51.                 if (posEqualChar < 0) {
  52.                     parameters.put(splitParts[i], null);
  53.                     continue;
  54.                 }
  55.                 String key = splitParts[i].substring(0, posEqualChar);
  56.                 String value = splitParts[i].substring(posEqualChar + 1);
  57.                 parameters.put(key, value);
  58.             }
  59.  
  60.             for (String key : parameters.keySet()) {
  61.                 System.out.print(key + " ");
  62.             }
  63.  
  64.             System.out.println();
  65.             String objParameter = parameters.get("obj");
  66.             if (objParameter == null) {
  67.                 return;
  68.             }
  69.  
  70.             try {
  71.                 alert(Double.parseDouble(objParameter));
  72.             }
  73.             catch (NumberFormatException e) {
  74.                 alert(objParameter);
  75.             }
  76.  
  77.         }
  78.         catch (IOException e) {
  79.             e.printStackTrace();
  80.         }
  81.     }
  82.  
  83.     public static void alert(double value) {
  84.         System.out.println("double " + value);
  85.     }
  86.  
  87.     public static void alert(String value) {
  88.         System.out.println("String " + value);
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement