【问题标题】:how to parse a two doubles from editText?如何从editText解析两个双打?
【发布时间】:2013-02-25 14:47:07
【问题描述】:

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

我的代码:

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

【问题讨论】:

    标签: android string-parsing


    【解决方案1】:

    对于第二个索引,只需这样做:inputNum2 = Double.parseDouble(val[1]); 或确保 strVal = val[1]。并确保字符串被正确拆分。发生的事情是,val 中只有 1 个字符串,因此 val[1] 为您提供ArrayIndexOutOfBoundException。希望对您有所帮助。

    【讨论】:

    • 我该如何解决这个问题?
    • 问题是,你的字符串没有被正确分割。
    【解决方案2】:

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

    【讨论】:

    • 致命异常:主要 java.lang.ArrayIndexOutOfBoundsException:长度=1;索引=1
    • 这是正确的答案,异常意味着您正在尝试访问数组中少于 n 个元素的元素 [n]。示例(伪代码) ourArray = array(3, 5, 7, 11) 您尝试访问类似 ourArray[6] 或 ourArray[4] 的元素,这会产生此错误,因为只有从 0: 0, 1 开始的四个索引的元素, 2, 3. 只在 ourArray[...] 中使用它们是正确的,其他人会像它一样给你错误。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多