Java 将字符串对象转换为方程

Java 将字符串对象转换为方程,java,swing,expression,equation,scriptengine,Java,Swing,Expression,Equation,Scriptengine,我正在做一个,我希望它能完成的任务之一是将用户给定的输入转换成一个程序将要求解的方程。例如“(10+5/3)2-3(10*(8^4))”。它必须能够求解中等教育水平的方程,因此需要指数、指数表示法,甚至可能需要变量求解 我环顾了stackoverflow,发现了两样东西,第三方API和脚本引擎 这两个方面我都有问题,因为我不想使用任何第三方API和脚本引擎的eval()函数,至少就我所知,它的功能是有限的 是否有其他本机API用于执行类似操作?我错过了什么把戏 因此,总而言之,我想要一些java

我正在做一个,我希望它能完成的任务之一是将用户给定的输入转换成一个程序将要求解的方程。例如“(10+5/3)2-3(10*(8^4))”。它必须能够求解中等教育水平的方程,因此需要指数、指数表示法,甚至可能需要变量求解

我环顾了stackoverflow,发现了两样东西,第三方API和脚本引擎

这两个方面我都有问题,因为我不想使用任何第三方API和脚本引擎的eval()函数,至少就我所知,它的功能是有限的

是否有其他本机API用于执行类似操作?我错过了什么把戏

因此,总而言之,我想要一些java本机的东西,而不是脚本引擎,它可以解决中等教育水平的方程式和表达式。

java有内置的()JavaScript引擎:

它允许您求解如下等式。

Java内置了()JavaScript引擎:

它可以让你解这样的方程

例如“(10+5/3)2-3(10*(8^4))”

试试看这个

我环顾了stackoverflow,发现了两样东西,第三方API和
脚本引擎

这两个方面我都有问题,因为我不想使用任何第三方API,脚本引擎的eval()函数,至少就我所知,它的功能是有限的

这种理解是错误的


另见 使用
ScriptEngine
的示例

  • (因为它太漂亮了)
  • =

    例如“(10+5/3)2-3(10*(8^4))”

    试试看这个

    我环顾了stackoverflow,发现了两样东西,第三方API和
    脚本引擎

    这两个方面我都有问题,因为我不想使用任何第三方API,脚本引擎的eval()函数,至少就我所知,它的功能是有限的

    这种理解是错误的


    另见 使用
    ScriptEngine
    的示例

  • (因为它太漂亮了)

  • =

    听起来像是一次雄心勃勃、回报丰厚的冒险!你对自己编写程序感兴趣吗?如果是这样的话,也许可以开始用文字写下你是如何解决
    (10+5/3)2-3(10*(8^4))
    。ANTLR可能会有用:(但可能没有自己解析表达式那么有趣;-)如果我必须开始写我自己的字符串解析器,那么我会,但是,重新发明我可能找不到的轮子有什么意义呢?听起来这是一项雄心勃勃、回报丰厚的冒险!你对自己编写程序感兴趣吗?如果是这样的话,也许可以开始用文字写下你是如何解决
    (10+5/3)2-3(10*(8^4))
    。ANTLR可能会有用:(但可能没有自己解析表达式那么有趣;-)如果我必须开始写我自己的字符串解析器,那么我会,但是重新发明我可能找不到的轮子有什么意义呢。OP不想使用脚本引擎。@dnault,但这是内置的。否则,他将在字符串解析、替换等方面做大量工作。不使用脚本引擎的愿望只意味着OP想要玩编程,而不是解决任务。所以我把这个答案告诉了其他访问者。它支持指数、指数符号和指数吗?如果是的话,我可能会考虑使用它,如果没有,我甚至不会碰它。我还提到我不想使用脚本引擎。如果我必须开始编写我自己的字符串解析器,那么我会的,但是重新发明我可能找不到的轮子有什么意义呢。@Michaelwm,有很多数学javascript库,它们在数学方面起作用。就这个引擎支持javascript标准而言,大多数都不应该工作。仅供参考,在javascript指数表示法中,开箱即用。@Michaelwm,编写这样的解析器是每个程序员一生中应该做一次的事情之一。我几天前写过这样一个。OP不想使用脚本引擎。@dnault,但这是内置的。否则,他将在字符串解析、替换等方面做大量工作。不使用脚本引擎的愿望只意味着OP想要玩编程,而不是解决任务。所以我把这个答案告诉了其他访问者。它支持指数、指数符号和指数吗?如果是的话,我可能会考虑使用它,如果没有,我甚至不会碰它。我还提到我不想使用脚本引擎。如果我必须开始编写我自己的字符串解析器,那么我会的,但是重新发明我可能找不到的轮子有什么意义呢。@Michaelwm,有很多数学javascript库,它们在数学方面起作用。就这个引擎支持javascript标准而言,大多数都不应该工作。仅供参考,在javascript指数表示法中,开箱即用。@Michaelwm,编写这样的解析器是每个程序员一生中应该做一次的事情之一。我几天前就写了这样一篇文章。