14

文字列を整数に変換する関数を作成しました

   if ( data != null )
   {
        int theValue = Integer.parseInt( data.trim(), 16 );
        return theValue;
   }
   else
       return null;

6042076399の文字列があり、エラーが発生しました。

Exception in thread "main" java.lang.NumberFormatException: For input string: "6042076399"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:461)

これは文字列を整数に変換する正しい方法ではありませんか?

4

5 に答える 5

12

これが私がそれをするのを好む方法です:

編集(2015年8月4日):

以下のコメントに記載されているように、これは実際には次のように行う方が適切です。

String numStr = "123";
int num = Integer.parseInt(numStr);
于 2010-08-19T03:27:38.933 に答える
9

Integerその値を保持することはできません。6042076399(10進数で413424640921)は、整数が保持できる最大値である2147483647を超えています。

を使用してみてくださいLong.parseLong

于 2010-08-18T23:59:40.703 に答える
4

これは正しい方法ですが、値がの最大サイズよりも大きくなりますint

int保持できる最大サイズは231-1、つまり2,147,483,647です。あなたの値は6,042,076,399です。longプリミティブ型が必要な場合は、それをとして格納することを検討する必要があります。longの最大値は大幅に大きくなります-263-1 .別のオプションはBigInteger。です。

于 2010-08-18T23:59:40.297 に答える
2

その文字列はInteger.MAX_VALUEより大きいです。整数の範囲外のものを解析することはできません。(彼らは2 ^ 31-1まで上がると私は信じています)。

于 2010-08-18T23:59:16.663 に答える
1

他の人が答えたものに加えて、8桁を超える16進数(ただし16桁まで)の文字列がある場合は、を使用Long.parseLong()するintではなくlongを使用するように変換できますInteger.parseInt()

于 2010-08-19T00:03:43.067 に答える