0

出于实现特定的原因,我必须使用 Java 1.2。我试图解析一个String只有数字的对象(我预先替换变量以抽象该步骤)和运算符(PEDMAS)。我发现很多库都可以很好地做到这一点,但不幸的是,没有与 Java 1.2 兼容的库(即使摆弄,它们都依赖于泛型之类的东西)。显然我有能力自己制作这个,但我当然更愿意不重新制作轮子。是否有任何我还没有找到的库可以为我做到这一点?谢谢。

(要求:二元运算符和括号)

编辑:根据要求,输入和输出的一些示例:

  • “(10 / 5) + 4.5 - (8)”会给你 -1.5
  • "(1/3) * 4" 会给你 1.3333333...
  • “5^3 + 4 * 2”会给你 133
  • “-10 + 5”会给你-5

希望这是有道理的。

4

1 回答 1

2

您可以编写自己的递归下降解析器。这个 Java实现使用StreamTokenizer,从 1.0 开始可用,但是您必须用int常量替换enum标记并忽略tokenIs(Symbol.WORD)函数标识符。

于 2012-11-26T02:17:41.890 回答