我正在尝试使用多个参数创建一个从字符串中获取输入的计算器。
实施例: 用户类型:14 + 20 * 8
然后它将进行数学运算并返回一个变量。
我看到类似这样的东西,但代码对我来说太先进了,并不是我想要的。我已经查看了其他问题,他们似乎没有得到这个进展。
我正在考虑使用字符串构建器,然后将每个参数分解为变量然后以这种方式进行数学运算,但我不太确定如何做到这一点。
答案 0 :(得分:1)
一个聪明的方法是使用recursive descent parser。对于更简单的东西,你可以禁用括号并要求用户用空格分隔每个标记(所以14 + 20很好,但不允许14 + 20),然后使用String#split(“”)来分隔标记。如果令牌的第一个字符是数字,则使用Integer.parseInt(str)将其转换为int;如果你得到NumberFormatException
那么可能是因为用户没有包含空格(并且你试图将“14 + 20”变成一个整数)