значение obj всегда одно или их может быть сколько угодно? public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String url = reader.readLine(); //напишите тут ваш код String lastPartUrl = url.substring(url.indexOf("?") + 1, url.length()); String[] substrings = lastPartUrl.split("&"); List<String> list = Arrays.asList(substrings); List<String> means = new ArrayList<>(); /*List<String> strings = new ArrayList<>(); List<Double> doubles = new ArrayList<>();*/ List<Object> znach = new ArrayList<>(); for (String parametr : list) { if (parametr.contains("=")) { if (parametr.contains("obj")) { String substring = parametr.substring(parametr.lastIndexOf("=")+1, parametr.length()); if (isDoubleDigit(substring)) { znach.add((Double)Double.parseDouble(substring)); } else znach.add(substring); means.add("obj"); } else means.add(parametr.substring(0, parametr.indexOf("="))); } else means.add(parametr); } means.stream().forEach(a->System.out.print(a+" ")); System.out.println(); /*doubles.stream().forEach(Solution::alert); strings.stream().forEach(Solution::alert);*/ for(Object obj:znach){ if(obj instanceof Double) alert((Double)obj); else alert(obj.toString()); } } public static boolean isDoubleDigit(String str) { try { double testDouble = Double.parseDouble(str); if (str.contains(".")) return true; else return false; } catch (Exception e) { return false; } } public static void alert(double value) { System.out.println("double: " + value); } public static void alert(String value) { System.out.println("String: " + value); } }