Рекурсивный вычислитель выражений с использованием Java

Я собираюсь написать средство оценки выражения, которое выполняет только сложение и вычитание. У меня есть простой алгоритм для этого; но у меня есть некоторые проблемы с реализацией.

Я рассматривал выражение как (это строка)

"(" <expression1> <operator> <expression2> ")"

Вот мой алгоритм

String evaluate( String expression )

   if expression is digit
      return expression

   else if expression is "(" <expression1> <operator> <expression2> ")"
      cut the brackets out of it
      expression1 = evaluate( <expression1> )
      operator = <operator>
      expression2 = evaluate( <expression2> )

   if operator is +
      expression1 + expression2

   else if operator is -
      expression1 - expression2 

Моя проблема - разбор , < operator> и из выражения. Как я могу это сделать?

Примечание: я не прошу код. Все, что мне нужно, - это идея.

Спасибо,

-Ali

9
задан 629 1 November 2010 в 21:14
поделиться