你好,我经常开发 JTableModels,其中一些单元格必须包含应用某个简单数学公式的结果。这个公式可以有:
- 运算符(+、-、*、/)
- 数字常量
- 其他单元格引用(包含数字)
- 参数(引用名称如“INTEREST_RATE”的数字)
我经常解决这个问题,制作一个小的计算器类来解析我定义的语法公式。计算器类使用堆栈进行计算,语法始终使用波兰语表示法。
但是波兰语符号对我和我的用户来说是不自然的。所以我的问题是……
是否有一个在 1.5 jvm 中运行的库可以处理我的要求并对公式使用普通符号(带括号,我不知道这种符号样式的名称)?
P.D 假设公式总是语法正确,我可以预处理不是常量的数字以提供它们的值
最佳答案
你想过JSR-223的好处吗? ?简而言之,这个规范allows Java developers轻松集成dynamic languages and their parsers .使用这样的解析器,您对定义解析器的需求将转换为对定义 internal DSL 的需求。 ,这解决了简单地创建一个好的 API,并让您的用户选择他们是否喜欢他们碰巧喜欢的 Javascript/Groovy/Scala/WTF 语法。
关于Java 1.5 : mathematical formula parser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4031824/