【发布时间】:2014-01-09 20:56:49
【问题描述】:
我正在创建一个基本上是计算器的程序,它接收用户的输入并将其分解为不同的部分。 示例输入:
4 + 5
我的程序接受输入并对其进行分析,然后分解术语、运算符、省略空格和其他一些内容。但是,当我将所有部分重新组合在一起时,它们是字符串形式。所以它看起来像这样:
"4+5"
如何让程序获取该字符串并解析它以产生 int 9?
我试过 Integer.parseInt(input) ,不出所料,它返回了一个错误。那么有没有一种简单(足够)的方法来做到这一点?还是我必须创建自己的方法来解析方程?
顺便说一句,它可以做两个以上的词,我分解输入的原因是检查输入错误,例如 5 ++ 5 或类似的任何内容。还要加入PEMDAS。
【问题讨论】:
-
您想使用调车码算法。您为运算符使用堆栈,为值使用队列。然后你就可以遍历这两个来知道计算的顺序,也可以遵循‘运算顺序’的规则。
标签: java