【发布时间】:2013-09-24 02:45:48
【问题描述】:
我正在处理java program,我希望它完成的任务之一是将用户给定的输入转换为程序将解决的方程。例如“(10 + 5 / 3) 2 - 3 (10 * (8 ^ 4))”。它必须能够求解中等教育水平方程,因此需要指数、指数符号,甚至可能需要变量求解。
我查看了 stackoverflow,发现了两个东西,第三方 API 和 ScriptEngine。
我在这两个方面都有问题,因为我不想使用任何第三方 API 和脚本引擎的 eval() 函数,至少就我所阅读和理解的内容而言,它的功能有限。
还有其他的原生 API 可以做这样的事情吗?我错过了什么技巧?
所以,回顾一下,我想要一些 Java 原生的东西,而不是脚本引擎,它可以解决中等教育水平的方程式和表达式。
【问题讨论】:
-
听起来像是一个雄心勃勃且回报丰厚的冒险!您对自己实际编写程序感兴趣吗?如果是这样,也许开始用文字写下你是如何解决
(10 + 5 / 3) 2 - 3 (10 * (8 ^ 4))的。 -
ANTLR 可能有用:antlr.org(但可能不如自己解析表达式有趣 ;-)
-
如果我必须开始编写自己的字符串解析器,那我会的,但是重新发明轮子有什么意义,我可能找不到。
标签: java swing expression equation scriptengine