2011-01-10 106 views
0

我想在我的一个项目中包含一个简单的RPN类型计算器函数。java rpn计算器

基本上我需要,可以例如转化的方法:

“30 /((1 + 4)* 3)” 到 “2”

没有人知道任何预先写好的库的那可以做到这一点?

谢谢。

+0

我会自己写:)。 – 2011-01-10 12:07:34

+0

@我也是。因为这是我的作业:) – 2011-01-10 12:59:35

回答

3

你应该实现Shunting Yard Algorithm

也期待:Reverse Polish notation

您可以使用Shunting Yard (Jep API)

我建议你把它用Python语言编写,如果你没有实现它在Java中,因为它是内置方法

print eval("30/((1 + 4) * 3)") 

ideone demo

+0

我解决了它使用这个答案http://stackoverflow.com/questions/1320891/java-rpn-reverse-polish-notation-infix-to-postfix和编写我自己的处理器。 – pstanton 2011-01-10 21:40:58

0

您需要解析器和堆栈。

Google带回了一堆链接。我不能推荐他们中的任何一个,因为我的应用程序都不需要RPN计算器。

如果这是作业,请将其标记为这样。