2013-02-25 27 views
1

我开发了一个简单的计算器,我有一个问题。当我输入计算值时,仅解析第一位数字。例如,如果输入5 + 3,那么结果将是5.如何解决此问题?感谢任何答案。如何从editText解析两个双打?

我的代码:

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

回答

2

对于第二个索引只是这样做:inputNum2 = Double.parseDouble(val[1]);或确保strVal = val [1]。并确保该字符串正确拆分。现在发生的是val中只有一个字符串,val [1]给出ArrayIndexOutOfBoundException。希望有所帮助。

+0

不幸的是,这是行不通的 – ricky 2013-02-25 15:28:16

+0

这是因为你的val数组大小不正确 – h4ck3d 2013-02-25 15:31:37

+0

我该如何解决这个问题? – ricky 2013-02-25 15:38:55

2

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

+0

致命异常:主要 java.lang.ArrayIndexOutOfBoundsException:长度= 1; index = 1 – ricky 2013-02-25 15:12:27

+0

这是正确的答案,异常意味着你试图访问数组中少于n个元素的元素[n]。 示例(伪代码)ourArray = array(3,5,7,11)您尝试访问像ourArray [6]或ourArray [4]这样的元素,由于只有四个索引从0开始的元素:0 ,1,2,3。只有在我们的数组中使用它们是正确的,其他人会给你错误。 – Prozi 2013-02-28 20:49:05

0

问题是解析器解析字符串直到第一个非数字,如果你有“3”。所以,你应该叫

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