4

この問題に遭遇したとき、私は現在自分の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

4 に答える 4

7

Integer には大きすぎます。Long が必要です。

編集

それが電話番号であることに気づきませんでした-間違いなく文字列として保存してください。

検証に関しては、多くの人が以前にその問題に対処したことがあります。たとえば、ここを参照してください:電話番号検証のための包括的な正規表現

于 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"

このように 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();    
    }     
于 2012-11-01T02:40:02.597 に答える