我正在创建一个基本上是计算器的程序,它接收用户的输入并将其分成不同的部分。 示例输入:
4 + 5
我的程序接受输入并对其进行分析并分解术语,操作符,省略空格和其他一些内容。但是,当我把所有碎片放回原处时,它们都是String形式。所以它看起来像这样:
"4+5"
如何让程序获取该字符串并解析它以产生int 9?
我尝试Integer.parseInt(input)
,毫不奇怪,它会返回错误。那么有一种简单(足够)的方法吗?或者我是否必须创建自己的方法来解析方程式?
顺便说一句,它可以执行两个以上的术语,我分解输入的原因是检查输入错误,例如5 ++ 5或那种方式。它也是要加入PEMDAS。
答案 0 :(得分:1)
如果不改变您当前的代码,我真的无法做到这一点。您可能需要做的是检查字符串中是否有运算符字符('+','*'等)的实例,并使用split方法分隔出数字,然后您可以将这些数字单独解析为整数,以及然后使用运算符进行组合。
或者,如果它完全可能,只需在每个数字和前一个/尾随运算符之间留一个空格,然后拆分''的实例。