我正在尝试在Java中构建自己的数学表达式解析器,我知道有很多脚本管理引擎。但是我想自己构建一个,只是为了练习。
然而,我一直在寻找进展中的困难,所以我开始思考是否有更好的编写方式。这就是我的做法:
(同时我假设输入合法) 唯一合法的运算符是:+ - * / ^ ( )
我从用户获取一个字符串表达式输入,然后开始循环遍历字符串输入来查找“(”,如果我找到了一个,我会计算其内部的值,然后用结果替换子表达式字符串。
我应该继续按照这种方式编程,还是应该采取另一种方法?有没有任何教程可以解释如何完成这个任务(不是代码,仅仅是一般理论)?
感谢您的帮助。
然而,我一直在寻找进展中的困难,所以我开始思考是否有更好的编写方式。这就是我的做法:
(同时我假设输入合法) 唯一合法的运算符是:+ - * / ^ ( )
我从用户获取一个字符串表达式输入,然后开始循环遍历字符串输入来查找“(”,如果我找到了一个,我会计算其内部的值,然后用结果替换子表达式字符串。
我应该继续按照这种方式编程,还是应该采取另一种方法?有没有任何教程可以解释如何完成这个任务(不是代码,仅仅是一般理论)?
感谢您的帮助。
+ - * /
。在你实现了这部分之后(参考:http://alfasin.com/a-simple-calculator-in-ruby/),再计划如何扩展以支持指数和括号。 - Nir Alfasi