我目前正在寻找一个Java库(或带有Java API的本地库)用于公式解析和计算。
根据这里的建议,我研究了许多库:
- JFormula
- JEval
- Symja
- JEP
但是它们都不能满足我的需求,我的需求是:
- 多个公式之间具有依赖关系的公式计算(公式总是将其他变量或数字值分配给变量)
- 能够仅更改其中一个公式而不影响其他50个公式,并且具有良好的性能
- 无需手动处理变量依赖关系
- 如果公式更改,则自动更新其他相关变量
- 能够监听哪些变量发生了变化
- 无需为变量指定特定格式(用户将直接输入名称,不想使用复杂符号)
也许举个例子会更好。 假设我们按照以下顺序将其输入到系统中:
- a = b + c
- c = 2 * d
- b = 3
- d = 2
我希望能够以这种顺序输入这4行,并要求得出“a”的结果(或“b”,无论哪个)。 然后,如果在用户界面(基本上是一个表变量<>公式)中将“b”更改为“2 * d”,该库将自动更改“b”和“a”的值,并返回(或启动事件或调用函数)一系列变化的列表
最好的库就像JEP一样,但具有无顺序的变量功能和自动评估相关变量的可能性
我知道编译器和电子表格软件使用这种机制,但我没有找到任何Java或Java兼容的库可以直接使用。
有人知道这样的库吗?
编辑:精度:问题实际上是关于一个库,或者最终要链接在一起的一组库。这个问题是为了一个公司的项目,想法是尽可能少地花费时间。 "自己动手做" 的解决方案已经得到评估,并不在问题的范围内。