Столкнулся с другими проблемами, чем описаны в обсуждениях. В частности, чтобы присвоить переменной a типа int цифровое значение char-а, пришлось этот chsar конвертировать сначала в String, а затем из String-а парсить в Integer.
if(Character.isDigit(c)) {
                if(a == -1) a = Integer.parseInt(String.valueOf(c));
                else b = Integer.parseInt(String.valueOf(c));
По моему это равносильно тому, чтобы почесать правой рукой левое ухо. Но если значение '3' типа char присвоить переменной типа int, в этой переменной окажется значение 51. Шестёрка таким образом из char-а превращается в 54. Код для преобразования цифры char в её int-овый аналог правильный (через String и Integer)? Или как-то можно проще? А по поводу задачи в целом - не могу понять, почему не принимается это решение. Может не до конца понял условие?