Приветствую прошу помощи. Валидатор не пропускает задачу по пунктам. Менял код несколько раз.Все вроде работает. Спасибо!:
Программа должна выводить данные на экран в соответствии с условием.
Программа должна вызывать метод alert с параметром String в случае, если значение параметра obj НЕ может быть корректно преобразовано в число типа double.
package com.javarush.task.task15.task1527;
/*
Парсер реквестов
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String string = bufferedReader.readLine();
outParameters(string);
}
public static void outParameters (String string)
{
string = string.trim();
int charIndex = 0;
String[] massParameters = null;
for (int i = 0; i <string.length() ; i++) {
if (string.charAt(i) == '?')
{
charIndex = i;
string = string.substring(charIndex+1,string.length());
massParameters = string.split("&");
break;
}
}
if (massParameters != null)
{ Double forAlert = null;
boolean check = false;
String forCheck = null;
for (int i = 0; i <massParameters.length ; i++) {
String str = massParameters[i];
if (str.contains("obj")) {String[] massValue= str.split("=");
try {
alert(massValue[0]);
forAlert = Double.parseDouble(massValue[1]);
} catch (NumberFormatException ex) {check =true; forCheck = massValue[1];}
}
else if(str.contains("=")) { str = str.substring(0,str.indexOf('='));
alert(str);
}
else {alert(str);}
}
if ((forAlert!= null)&&(check == false))
{alert(forAlert);}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}
/*
Парсер реквестов
Считать с консоли URL-ссылку.
Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15).
URL содержит минимум 1 параметр.
Выводить параметры нужно в той же последовательности, в которой они представлены в URL.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) - для чисел (дробные числа разделяются точкой)
alert(String value) - для строк
Обрати внимание на то, что метод alert необходимо вызывать ПОСЛЕ вывода списка всех параметров на экран.
Пример 1
Ввод:
http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
Вывод:
lvl view name
Пример 2
Ввод:
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
Вывод:
obj name
double: 3.14
Требования:
1. Программа должна считывать с клавиатуры только одну строку.
2. Класс Solution не должен содержать статические поля.
3. Программа должна выводить данные на экран в соответствии с условием.
4. Программа должна вызывать метод alert с параметром double в случае, если значение параметра obj может быть корректно преобразовано в число типа double.
5. Программа должна вызывать метод alert с параметром String в случае, если значение параметра obj НЕ может быть корректно преобразовано в число типа double.
*/