Выводит правильно, согласно примеру
Что не учел, помогите!
Спасибо!
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String url = reader.readLine();
//напишите тут ваш код
boolean checkDouble = false;
String objParameter = "";
String doubleParameter = "";
// формируем параметр double
for (int i = url.indexOf("=") + 1; i < url.indexOf("&"); i++) {
doubleParameter += url.charAt(i);
}
// проверка параметра на double
if (doubleParameter.contains(".") & doubleParameter.indexOf(".") < doubleParameter.length() - 1) {
// формируем строку obj для double
for (int i = url.lastIndexOf("&") + 1; i < url.lastIndexOf("="); i++) {
objParameter += url.charAt(i);
}
try {
System.out.println("obj " + objParameter);
alert(Double.parseDouble(doubleParameter));
checkDouble = true;
} catch (NumberFormatException e) {
System.out.println("Not double");
}
}
// если проверка на double не прошла, формируем строку obj для String согласно условию
if (!checkDouble) {
for (int i = url.indexOf("?") + 1; i < url.indexOf("="); i++) {
objParameter += url.charAt(i);
}
objParameter += " ";
for (int i = url.indexOf("&") + 1; i < url.lastIndexOf("="); i++) {
if (url.charAt(i) == '&') {
objParameter += " ";
i++;
}
objParameter += url.charAt(i);
}
alert(objParameter);
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}