Твой код, когда не читаешь документацию к классу String xD
Но он работает! И все по условию выводит.. Мб кто-то подскажет url который не пройдет?
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = convertLineToStrArrayByChars(reader.readLine());
ArrayList<String> listCopy = new ArrayList<>(list);
for (String x:listCopy) {
if (!(x.equals("?")))
list.remove(x);
else
break;
}
list.remove(0); // на этом этапе у нас удалено все до знака вопроса, включительно с ним самим
ArrayList<String> sepLines = preliminaryCut(list); // на этом этапе у нас есть список с нужными полями и значениями. Теперь разберем отдельно каждый параметр
// тут нада вывести список без параметров
System.out.println(finalCut(sepLines));
for (String x: sepLines) {
String var = objDetector(x);
if (var != null && isNumeric(var))
alert(Double.parseDouble(var));
else if (var!= null)
alert(var);
} // выводим параметр у obj
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
public static ArrayList<String> preliminaryCut(ArrayList<String> list){
ArrayList<String> sepLineList = new ArrayList<>();
String movingVar = "";
for (String x:list) {
if (!(x.equals("&"))){
movingVar = movingVar + x;
}
else{
sepLineList.add(movingVar);
movingVar = "";
}
}
sepLineList.add(movingVar);
return sepLineList;
}
public static ArrayList<String> convertLineToStrArrayByChars(String url){ // метод превращает строку в список символов типа String
char[] charSeq = url.toCharArray();
String[] strSeq = new String[charSeq.length];
for (int i = 0; i < strSeq.length; i++) {
strSeq[i] = String.valueOf(charSeq[i]);
}
ArrayList<String> list = new ArrayList<>(Arrays.asList(strSeq));
return list;
}
public static String objDetector(String line){ // метод передает параметр obj в виде строки
String variable = "";
if (line.contains("obj=")){
variable = line.substring(4);
return variable; }
else
return null;
}
public static boolean isNumeric(String x){
try {
Double k = Double.parseDouble(x);
}
catch (NumberFormatException e){
return false;
}
return true;
}
public static String finalCut(ArrayList<String> list){
String finality = "";
int index = 0;
for (String x: list) {
index = x.indexOf("=");
if (index>0)
finality = finality + x.substring(0, index) + " ";
else
finality = finality + x + " ";
}
finality = finality + '\b';
return finality;
}
}