-1

我正在尝试制作一个使用多个参数从字符串中获取输入的计算器。

示例:用户类型输出:14 + 20 * 8

然后它将进行数学运算并返回一个变量。

我看到了这样的东西,但是代码对我来说太高级了,而且不是我想要的。我已经查看了其他问题,但他们似乎并没有得到这个先进。

我正在考虑使用字符串生成器,然后将每个参数分解为一个变量,然后以这种方式进行数学运算,但我不太确定该怎么做。

4

1 回答 1

1

一个聪明的方法是使用递归下降解析器。对于更简单的事情,您可以禁止使用括号并要求用户用空格分隔每个标记(因此 14 + 20 可以,但不允许使用 14+20),然后使用 String#split(" ") 分隔标记. 如果token的第一个字符是数字,则使用Integer.parseInt(str)转成int;如果您得到 aNumberFormatException那么可能是因为用户没有包含空格(并且您试图将“14 + 20”转换为整数)

于 2013-04-25T02:51:12.663 回答