我打算编写一个只执行加法和减法的表达式求值器,我有一个简单的算法可以实现这个功能;但是,我遇到了一些实现问题。
我把表达式看作一个字符串。
"(" <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
我的问题是从表达式中解析出<expression1>
、<operator>
和<expression2>
。我该如何做?
注意:我不是在寻求代码,我只需要思路。
谢谢,
- Ali