Всем привет)
Фух...сначала сделал чудо-юдо а не код, а потом только подумал про деление строк.
Но тем не менее в моем страшном коде все работает полагается, во всяком случае я не вижу ошибок.
Однако вопреки всем моим потугам валидатор не хочет пропускать. Если кому не в лом, прощу подсказать. Не, я то конечно понимаю, что работает и может просто дальше пойти, но не хочу я так. Хочу разобраться)
package com.javarush.task.task15.task1527;
/*
Парсер реквестов нужно было просто разделить строки специальной командой для класса String
С разделенными строками проделать простые операции, а не писать эту большую муть. Но она работает.
*/
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 w = "http://javarush.ru/alpha/index.html?obj=314";
//bufferedReader.readLine();
ArrayList<String> List_name = new ArrayList<>();
ArrayList<String> List_values = new ArrayList<>();
char[] list = w.toCharArray();
String s = "";
boolean flag = false;
boolean flag_one = false;
for (int i = 0; i < list.length; i++) {
if (list[i]=='?'||flag ==true||list[i]=='&')
{
if (list[i]!='?'&&list[i]!='='&&list[i]!='&')
{
s=s+list[i];
//System.out.println(s);
}
else
{
flag = true;
if (list[i]!='?'&&list[i]!='&')
{
List_name.add(s); s = "";
flag = false;
}
if (list[i]=='&'&&!s.equals(""))
{
List_name.add(s); s = "";
}
}
}
}
flag = false;
for (int i = 0; i < list.length; i++) {
if (list[i]=='='||flag ==true)
{
if (list[i]!='='&&list[i]!='&')
{
s=s+list[i];
if(i==list.length-1)
{
List_values.add(s); s = "";
flag = false;
}
//System.out.println(s);
}
else
{
flag = true;
if (list[i]!='='&&list[i]!='&')
{
List_values.add(s); s = "";
flag = false;
}
if (list[i]=='&'&&!s.equals(""))
{
List_values.add(s); s = "";
flag = false;
}
}
}
}
//Вывожу результат
for (int i = 0; i < List_name.size(); i++)
{
if (i!=List_name.size()-1)
System.out.print(List_name.get(i)+" ");
else{System.out.print(List_name.get(i));}
}
for (int i = 0; i < List_name.size(); i++) {
if (List_name.get(i).equals("obj"))
{
System.out.println("");
try {
Double q = Double.parseDouble(List_values.get(i));
alert(q);
} catch (Exception e) {
alert(List_values.get(i));
}
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}