1

我开发了一个简单的计算器,但我遇到了问题。当我输入计算的值时,只解析第一个数字。例如,如果输入 5 + 3,那么结果将是 5。如何解决这个问题?谢谢你的任何答案。

我的代码:

String[] val = mInputVal.getText().toString().split("\\+");
    try{
        inputNum1 =  Double.parseDouble(val[0]);
        inputNum2 =  Double.parseDouble(strVal);
    }catch (NumberFormatException e){}
4

3 回答 3

2

inputNum2 = Double.parseDouble(val[1]);?

于 2013-02-25T14:48:21.023 回答
2

对于第二个索引,只需执行以下操作:inputNum2 = Double.parseDouble(val[1]);或确保 strVal = val[1]。并确保字符串被正确拆分。发生的事情是, val 中只有 1 个字符串,因此 val[1] 给了你ArrayIndexOutOfBoundException。希望有帮助。

于 2013-02-25T14:49:47.857 回答
0

问题是解析器解析字符串直到第一个非数字,而你有“3”。所以你应该打电话

inputNum2 =  Double.parseDouble(val[1].trim());
于 2013-02-25T14:53:02.717 回答