计算字符串输入的数字表达式?

时间:2014-04-30 23:03:06

标签: java

使用计算器程序,有点卡住了。

如果我有例如:2*7/2+3 在文本字段getText()中,我怎样才能从字符串计算结果?

我一直在忙于String.split(),但我无法想到解决这个问题......

由于

2 个答案:

答案 0 :(得分:1)

你需要的是表达式解析。通常通过首先将中缀符号转换为后缀表示法并执行操作来完成。一个例子可以在:

http://people.cs.clemson.edu/~turner/courses/cs102/spring98/section2/assignments/asg4/InfixToPostfix.java

答案 1 :(得分:1)

这个问题已经得到解答;见下面的链接。

您可以将表达式解析为二叉树。 没有括号的表达式会有:

  • a + at the root
  • /向左,3向右
  • (在/下)x左侧,null为右侧
  • (在x下)2左侧,7右侧

然后,您可以通过将树从右侧,左侧,中间读取到堆栈的方式将其推入堆栈来评估树。

您需要一个平衡的括号树来将表达式转换为后置修复。

在此处阅读表达式解析Evaluating a math expression given in string form