Вы ищете алгоритм синтаксического анализа. Я рекомендую один из двух подходов: регулярное выражение или токенизация.
Regex был бы самым оптимизированным подходом, у java много библиотек Regex. Вы можете сформировать регулярное выражение (Regex) для соответствия действительному входу калькулятора. С головы до ног я не могу предоставить вам хорошее регулярное выражение, но я уверен, что поиск в Google предоставит вам хотя бы начало. Шаблон Regex может проверять ввод калькулятора, в основном выполняя для вас алгоритм синтаксического анализа.
Для активации ввода с использованием строкового токенизатора (при вводе строки) потребуется алгоритм синтаксического анализа. По сути, вы бы алгоритмически составляли грамматику и проверяли последовательность токенов, чтобы соответствовать грамматике. Например:
Num -> оператор | скобка -> Num -> ...... и так далее
Я рекомендую использовать стек для отслеживания даже круглых скобок. Каждый раз, когда вы сталкиваетесь с парнем, нажмите или поместите заполнитель в стек/из стека. Пустой стек в конце ввода означает даже parens. Left paren: push placeholder; right paren: pop placeholder.
Ну, удачи с этим :) - был ли вопрос? –