Решил задачу, тесты проходит) сделал конечно сложно, не стандартно) как решить проблему, что проверка выводит "Программа работала слишком долго и была закрыта!" - у меня отрабатывает за секунды)
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 {
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
ArrayList<Character> listFirst = new ArrayList<>();
ArrayList<Character> listSecond = new ArrayList<>();
StringBuilder answer = new StringBuilder();
boolean test = true;
char[] list;
list = line.toCharArray();
for (int i = 0; i < list.length; i++) {
if (list[i] == '?') {
for (int j = i + 1; j < list.length; j++) {
listFirst.add(list[j]);
}
for (int q = 0; q < list.length; q++) {
listSecond.add(list[q]);
}
break;
}
}
while (test) {
for (Character character : listFirst) {
if (!character.equals('=')) {
answer.append((char) character);
} else {
answer.append(" ");
test = false;
break;
}
}
}
test = true;
while (test) {
for (int i = 0; i < listFirst.size(); i++) {
if (listFirst.get(i).equals('&')) {
for (int j = i+1; j < listFirst.size(); j++) {
if (!listFirst.get(j).equals('&') && !listFirst.get(j).equals('=')){
answer.append((char) listFirst.get(j));
}
else if (listFirst.get(j).equals('=')){
answer.append((char) ' ');
break;
}
else if (listFirst.get(j).equals('&')){
answer.append((char) ' ');
break;
}
}
}
}
test = false;
}
System.out.println(answer);
StringBuilder our = new StringBuilder();
for (int i = 0; i < listSecond.size()-4; i++) {
if (listSecond.get(i).equals('?') || listSecond.get(i).equals('&')){
if (listSecond.get(i+1).equals('o')){
if (listSecond.get(i+2).equals('b')){
if (listSecond.get(i+3).equals('j')){
if (listSecond.get(i+4).equals('=')){
int h = i+5;
while (!listSecond.get(h).equals('&')){
our.append(listSecond.get(h));
h++;
}
try {
if (our.toString().contains(".")){
alert(Double.parseDouble(our.toString()));
}
else {
alert(our.toString());
}
}
catch (Exception o){
o.printStackTrace();
}
}
}
}
}
}
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}