4

当我遇到这个问题时,我目前正在处理我的 android 项目

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

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

下面是我的安卓代码:

 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

4 回答 4

7

它对于整数来说太大了,你需要一个长的。

编辑

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

至于验证,很多人以前都处理过这个问题。例如,请参见此处:电话号码验证的综合正则表达式

于 2012-11-01T02:25:31.063 回答
5

这是因为该值对于整数来说太大而无法处理。整数可以处理的最大值是 2147483647,这里是.

您可以使用long( Long.valueOf()) 代替。

于 2012-11-01T02:25:55.680 回答
1

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

于 2012-11-01T02:28:39.377 回答
1

因为Int你得到更高的价值

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

只需像这样用 long 替换 int 值

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();    
    }     
于 2012-11-01T02:40:02.597 回答