从字符串手动评估数学公式

时间:2012-09-29 08:22:39

标签: actionscript-3 parsing math

我知道有一些解决方案可以使用AS3评估数学公式:使用MathParser,或将其移植到JavaScript等等。

但是如果我想手动评估数学公式而不使用任何构建的库呢? 它应该能够解决这个问题:1+(2*5+(9-6)/(5-2))+(6/2)*5

我打算这样做:

  1. 用左右括号分隔字符串文字。
  2. 按优先级对结果进行排序(通过从左到右扫描每个字符串 它看到左括号的时间然后优先级增加。每当它看到一个合适的支架 然后减少)。
  3. 计算具有最高优先级的结果。
  4. 但是,我还没有成功实现它。

1 个答案:

答案 0 :(得分:0)

使用Reverse Polish Notation将表达式转换为Shunting-yard algorithm并对其进行评估。这是第二篇文章中的一个很好的例子。