使用Java的递归表达式求值器
发布时间:2020-12-14 05:10:24 所属栏目:Java 来源:网络整理
导读:我要写一个只做加法和减法的表达式求值器.我有一个简单的算法来做到这一点;但是,我有一些实现问题. 我认为一个表达式(它是一个字符串) "(" expression1 operator expression2 ")" 这是我的算法 String evaluate( String expression ) if expression is digit
我要写一个只做加法和减法的表达式求值器.我有一个简单的算法来做到这一点;但是,我有一些实现问题.
我认为一个表达式(它是一个字符串) "(" <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 解决方法
不要这样做,那么:)当你看到一个开头的括号,你的递归调用表达式.在表达结束时,要么找到另一个运算符(所以你根本不在表达式的末尾),要么是右括号,在这种情况下,您将从评估返回. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |