java.lang.NumberFormatException:无法将String解析为整数

时间:2012-11-01 02:23:43

标签: java android exception-handling type-conversion

当我遇到这个问题时,我正在研究我的android项目

我希望这会将像“0345303709”7这样的字符串转换为整数,但我不断收到NumberFormatException。

我在这里搜索了所有问题,但没有找到解决问题的方法。

以下是我的Android代码:

 String edit_cell=cellnumber.getText().toString();
        try
        {
            if(cellnumber.getText().length()==11 && TextUtils.isEmpty(edit_cell)!=true && edit_cell!=null)
            {

                cell=Integer.valueOf("03462651882");
            }
            else
            {                   
                Toast.makeText(this, "Invalid CellNumber\n Write CellNumber like this Format:\nNetworkCode Followed by your Number\n",Toast.LENGTH_LONG).show();
                Toast.makeText(this, "eg:03213213214",Toast.LENGTH_LONG).show();    
            }
        }

        catch(Exception ex)
        {
            Toast.makeText(this, "Invalid cellnumber\n Write cellNumber line this format:\n Network code followed by your number\n",Toast.LENGTH_LONG).show();
            Toast.makeText(this, "eg:03213213214",Toast.LENGTH_LONG).show();    
        }      

我使用的是eclipse Helios IDE,Android版本是2.2 api 8

4 个答案:

答案 0 :(得分:7)

对于整数而言,它太大了,你需要很长的时间。

修改

没有注意到它是一个电话号码 - 绝对将它存储为字符串。

至于验证,很多的人之前已经处理过这个问题。请参阅此处,例如:A comprehensive regex for phone number validation

答案 1 :(得分:5)

那是因为整数处理的值太大了。整数可以处理的最大值是2147483647,here

您可以改为使用longLong.valueOf())。

答案 2 :(得分:1)

最大值整数是2 ^ 31-1 <1。 3 462 651 882,所以你必须使用长型。

答案 3 :(得分:1)

由于您获得Int的价值更高

java.lang.NumberFormatException: For input string: "03453037097"

只需将int值替换为long,就像这样

String edit_cell=cellnumber.getText().toString();
    try
    {
        if(cellnumber.getText().length()==11 && TextUtils.isEmpty(edit_cell)!=true && edit_cell!=null)
        {

            cell=Long.parseLong("03462651882");//=====> Change is here
        }
        else
        {                   
            Toast.makeText(this, "Invalid CellNumber\n Write CellNumber like this Format:\nNetworkCode Followed by your Number\n",Toast.LENGTH_LONG).show();
            Toast.makeText(this, "eg:03213213214",Toast.LENGTH_LONG).show();    
        }
    }

    catch(Exception ex)
    {
        Toast.makeText(this, "Invalid cellnumber\n Write cellNumber line this format:\n Network code followed by your number\n",Toast.LENGTH_LONG).show();
        Toast.makeText(this, "eg:03213213214",Toast.LENGTH_LONG).show();    
    }