Как мне кажется данный код мягко говоря великоват. Хотелось бы узнать как можно было бы проще это описать?
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String x = reader.readLine();
        char[] f = x.toCharArray();
        ArrayList<Character> list = new ArrayList<Character>();
        for (int i = 0; i < f.length; i++) {
            list.add(f[i]);
        }

        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).toString().equals("?") || list.get(i).toString().equals("&")) {
                int temp = i + 1;
                while (true) {
                    if (list.get(temp).toString().equals("=") || list.get(temp).toString().equals("&")) {
                        System.out.print(" ");
                        break;
                    }
                    System.out.print(list.get(temp));
                    temp++;
                }
            }
        }
        System.out.println();

        for (int i = 0; i < list.size()-3; i++) {
            if (list.get(i).toString().equals("o") && list.get(i+1).toString().equals("b") && list.get(i+2).toString().equals("j")) {
                int temp = i + 4;
                String a = "";
                while (true) {
                    if (list.get(temp).toString().equals("&")) {
                        break;
                    }
                    a = a + list.get(temp).toString();
                    temp++;
                }
                try {
                    alert(Double.parseDouble(a));
                    System.out.print(" ");
                }catch (Exception x1){
                    alert(a);
                    System.out.print(" ");
                }
            }
        }