我正在开发一个应用程序,让用户可以用变量创建数学公式,然后可以使用它们。
用户可以创建的数学公式示例:
A*B+ (C/D*E)
创建公式后,用户可以在计算中使用它,因此我应该解析它并检索不同的变量(在我们的示例中:" A,B,C,D和E")并创建用于输入这些变量值的表格。
我的问题是:我如何储存我的配方?
我想到了一个String,我会手动解析以检索变量,并使用Maths.eval来计算公式。 或者,我可以将我的公式存储在JSON中,以便在以后恢复变量。
您认为正确的方法是什么?
谢谢
注意:我知道我的问题可能拼写错误,我道歉。
答案 0 :(得分:3)
表示,解析和评估此类公式的常用方法是使用Binary expression tree。当必须处理运算符优先级(*前+),括号等时,这尤其有用。此外,树遍历是解决此类问题的自然方法,可以使用不同的遍历类型(按顺序,预订,......)。
编辑:评估可以是implemented via stack。