• ,

com.javarush.test.level15.lesson12.home09

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Solution {
public static void main(String[] args) throws Exception{
//Ответ
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String text=bufferedReader.readLine();
ArrayListlist=new ArrayList<>();
int index=text.indexOf("?");
boolean isStast=false;
for (int i = 0; i <text.length(); i++) {
if ( (text.charAt(i)=='&'||text.charAt(i)=='=')&&!isStast ) {
list.add(text.substring(index+1,i));
isStast=true;
}
if ((text.charAt(i)=='&')&&isStast) {
index=i;
isStast=false;
}
}
for (int i = 0; i <list.size(); i++) {
System.out.print(list.get(i)+" ");
}
System.out.println();
if (text.contains(«obj»))
{
index=text.indexOf("=");
int index2=text.indexOf("&");
String text2=text.substring(index+1,index2);
if (isTextNumber(text2)){
alert(Double.parseDouble(text2));
}
else
alert(text2);
}
//Конец ответа
}
//Проверяет число или текст
private static boolean isTextNumber(String text){
char[]arrayNumbers=new char[]{'1','2','3','4','5','6','7','8','9','0','.'};
boolean isNumber=true;
for (int i = 0; i <text.length()&&isNumber; i++) {
isNumber=false;
for (int j = 0; j <arrayNumbers.length; j++) {
if (text.charAt(i)==arrayNumbers[j]) {
isNumber=true;
}
}
}
return isNumber;
}

public static void alert(double value) {
System.out.println(«double » + value);
}

public static void alert(String value) {
System.out.println(«String » + value);
}
}
Не проходит но пример обрабатывает.
  • ,

com.javarush.test.level15.lesson12.home09 все работает, не компилируется на сервере, гуру, подскажите в чем проблема

package com.javarush.test.level15.lesson12.home09;

/* Парсер реквестов
Считать с консоли URl ссылку.
Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15).
URL содержит минимум 1 параметр.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) - для чисел (дробные числа разделяются точкой)
alert(String value) - для строк

Пример 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
*/

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 reader = new BufferedReader(new InputStreamReader(System.in));
        String request = reader.readLine();
        reader.close();
        String params = "";
        ArrayList<Double> doubleValue = new ArrayList<Double>();
        ArrayList<String> value = new ArrayList<String>();
        String requestToParse= request.substring((request.indexOf("?")+1));
        String [] splitted = requestToParse.split("(\\&)|(\\?)");
        for (int i = 0; i < splitted.length; i++) {
            if (splitted[i].isEmpty()) continue;
            if (splitted[i].substring(0,3).equals("obj")){
                String [] splittedObj = splitted[i].split("=");
                params += splittedObj[0] + " ";
                if (splittedObj[1].contains(".")) doubleValue.add(Double.parseDouble(splittedObj[1]));
                else value.add(splittedObj[1]);
            } else {
                if (splitted[i].contains("=")){
                    String [] splittedNonObj = splitted[i].split("=");
                    params += splittedNonObj[0] + " ";
                } else params+=splitted[i] + " ";
            }
        }

        System.out.println(params);
        if ((!value.isEmpty())&&(!doubleValue.isEmpty())){
            for (String s : value){
                alert(s);
            }
            for (Double d : doubleValue){
                alert(d);
            }
        }
        if (value.isEmpty()&&(!doubleValue.isEmpty())){
            for (Double d : doubleValue){
                alert(d);
            }
        }
        if ((!value.isEmpty())&&doubleValue.isEmpty()){
            for (String s : value){
                alert(s);
            }
        }
        else return;
        //add your code here
    }

    public static void alert(double value) {
        System.out.println("double " + value);
    }

    public static void alert(String value) {
        System.out.println("String " + value);
    }
}

Молю)
  • ,

com.javarush.test.level15.lesson12.home09

Вроде отрабатывает все по заданию, но тест не проходит. Пробовал разные варианты. Вот последний:


package com.javarush.test.level15.lesson12.home09;

/* Парсер реквестов
Считать с консоли URl ссылку.
Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15).
URL содержит минимум 1 параметр.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) - для чисел (дробные числа разделяются точкой)
alert(String value) - для строк

Пример 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
*/

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Solution {
    public static void main(String[] args) {
        //add your code here
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String s = reader.readLine();
            if (s.indexOf('?')>1) {
                String sub = s.substring(s.indexOf('?') + 1);
                String[] params = sub.split("&");
                List<String> list = new ArrayList<String>();
                List<String> listObj = new ArrayList<String>();
                for (int i = 0; i < params.length; i++) {
                    try {
                        String key = params[i].split("=")[0];
                        if (key.equals("obj")) {

                            String value = params[i].split("=")[1];
                            listObj.add(value);

                        }
                        list.add(key);
                    } catch (ArrayIndexOutOfBoundsException e1){}
                }
                for (int i = 0; i < list.size(); i++) {
                    System.out.print(list.get(i));
                    if (i < list.size() - 1) System.out.print(" ");
                }
                System.out.println("");
                for (int i = 0; i < listObj.size(); i++) {
                    if (listObj.get(i).indexOf(".") > 0) alert(Double.parseDouble(listObj.get(i)));
                    else alert(listObj.get(i));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void alert(double value) {
        System.out.println("double " + value);
    }

    public static void alert(String value) {
        System.out.println("String " + value);
    }
}