Java 存储数学公式

Java 存储数学公式,java,math,formula,Java,Math,Formula,我正在开发一个应用程序,它可以帮助用户创建带有变量的数学公式,然后可以使用它们 用户可以创建的数学公式示例: A*B+ (C/D*E) 创建公式后,用户可以在计算中使用它,因此我应该解析它并检索不同的变量(在我们的示例中为“A、B、C、D和E”),并创建一个表单来输入这些变量的值 我的问题是:如何存储我的公式 我想到了一个字符串,我将手动解析它来检索变量,并使用math.eval来计算公式。 或者,我可以将我的公式存储在JSON中,以便于在修改后恢复变量 你认为什么是正确的方法 多谢各位 注

我正在开发一个应用程序,它可以帮助用户创建带有变量的数学公式,然后可以使用它们

用户可以创建的数学公式示例:

 A*B+ (C/D*E)
创建公式后,用户可以在计算中使用它,因此我应该解析它并检索不同的变量(在我们的示例中为“A、B、C、D和E”),并创建一个表单来输入这些变量的值

我的问题是:如何存储我的公式

我想到了一个字符串,我将手动解析它来检索变量,并使用math.eval来计算公式。 或者,我可以将我的公式存储在JSON中,以便于在修改后恢复变量

你认为什么是正确的方法

多谢各位


注:我知道我的问题可能拼错了,很抱歉。

表示、解析和计算这些公式的常用方法是使用。这在必须处理运算符优先级(*before+)、括号等时特别有用。此外,树遍历是解决此类问题的自然方法,可以使用不同的遍历类型(按序、按序等)


编辑:计算可以是。

表示、解析和计算此类公式的常用方法是使用。这在必须处理运算符优先级(*before+)、括号等时特别有用。此外,树遍历是解决此类问题的自然方法,可以使用不同的遍历类型(按序、按序等)


编辑:评估可以。

用这些方法做是否有具体问题?不,我只是想知道是否没有一种更清洁的方法可以轻松地维护。用这些方法做有什么特别的问题吗?不,我只是想知道是否有一种更干净的方法可以很容易地维护。我同意,这是正常情况下应该做的。但在我的例子中,公式相对简单,对于计算,我将使用ScriptEngine JavaScript:ScriptEngine=mgr.getEngineByName(“JavaScript”);我想知道公式的持久性,最后,我将把它存储在一个字符串中,稍后我将对其进行解析。好吧,如果您的计算器的输入是一个字符串,那么我不认为有任何理由不将其存储为字符串:)我没有使用ScriptEngine的经验,但是如果您将使用JavaScript进行计算,您可以简单地将公式按原样存储为字符串(使用变量),然后使用变量赋值将其前置,例如
var a=10;var B=20;评估(“A+B”)。我同意,这是正常情况下应该做的。但在我的例子中,公式相对简单,对于计算,我将使用ScriptEngine JavaScript:ScriptEngine=mgr.getEngineByName(“JavaScript”);我想知道公式的持久性,最后,我将把它存储在一个字符串中,稍后我将对其进行解析。好吧,如果您的计算器的输入是一个字符串,那么我不认为有任何理由不将其存储为字符串:)我没有使用ScriptEngine的经验,但是如果您将使用JavaScript进行计算,您可以简单地将公式按原样存储为字符串(使用变量),然后使用变量赋值将其前置,例如
var a=10;var B=20;评估(“A+B”)