【发布时间】:2010-02-09 05:03:51
【问题描述】:
我是一名 Android 开发人员,作为我下一个应用程序的一部分,我需要评估大量用户创建的数学表达式和方程式。我正在寻找一个轻量级的好 Java 库,可以使用用户定义的变量和常量、三角函数和指数函数等来评估数学表达式。
我环顾四周,Jep 似乎很受欢迎,但我想听听更多建议,尤其是以前使用过这些库的人的建议。
【问题讨论】:
我是一名 Android 开发人员,作为我下一个应用程序的一部分,我需要评估大量用户创建的数学表达式和方程式。我正在寻找一个轻量级的好 Java 库,可以使用用户定义的变量和常量、三角函数和指数函数等来评估数学表达式。
我环顾四周,Jep 似乎很受欢迎,但我想听听更多建议,尤其是以前使用过这些库的人的建议。
【问题讨论】:
不久前我写了一个简单但功能强大的Math Expression Evaluator,它是免费和开源的。它的主要优势是速度快且体积小——这对于手持设备来说都是一件好事。如果它满足您的需求,欢迎您使用它。
MathEval math=new MathEval();
math.setVariable("Top", 5);
math.setVariable("Left", 20);
math.setVariable("Bottom",15);
math.setVariable("Right", 60);
System.out.println("Middle: "+math.evaluate("floor((Right+1-Left)/2)"));
【讨论】:
JEval 是一个不错的选择。由于 Jep 商业化,我放弃了它。唯一担心的是,JEval 目前似乎有点休眠(最后一次发布于 2008 年)。
【讨论】:
试试https://code.google.com/p/expressionoasis/。它是一个可扩展的表达式评估框架,将满足这些要求。
【讨论】:
这并不完全符合我的初始条件,但我发现了一个用 C++ 编写的出色解析器。我试图弄清楚 Android 的本机代码支持,看看我是否可以使用它。这正是我需要的。
这是项目的文档。
http://www.codeproject.com/KB/recipes/MathieuMathParser.aspx
【讨论】:
有一个名为formula4j 的新商业工具,可能会引起一些人的兴趣。
【讨论】: