Frage

    

Diese Frage bereits eine Antwort hier:

         

Ich habe eine Funktion zu konvertieren Zeichenfolge geschrieben integer

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

Ich habe eine Zeichenfolge, die 6042076399 ist und es gab mir Fehler:

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)

Ist dies nicht der richtige Weg zu konvertieren Zeichenfolge integer?

War es hilfreich?

Lösung

Hier ist die Art, wie ich es vorziehen, es zu tun:

Edit (2015.08.04):

Wie bereits erwähnt in dem Kommentar unten, dies ist eigentlich besser, wie dies geschehen:

String numStr = "123";
int num = Integer.parseInt(numStr);

Andere Tipps

Ein Integer kann diesen Wert nicht halten. 6042076399 (413424640921 dezimal) größer als 2147483647, die maximal eine ganze Zahl halten kann.

Versuchen Long.parseLong verwendet wird.

Das ist die richtige Methode, aber Ihr Wert ist größer als die maximale Größe eines int.

Die maximale Größe kann ein int HOLD 2 31 - 1 ist, oder 2,147,483,647. Ihr Wert ist 6042076399. Sie sollten speichern es als long aussehen, wenn Sie eine primitive Art wollen. Der Maximalwert eines langen wesentlich größer - 2 63 - 1. könnte andere Option BigInteger .

Dieser String größer als Integer.MAX_VALUE. Sie können nicht Parse etwas, das von ganzen Zahlen des zulässigen Bereichs aus. (Sie gehen bis zu 2 ^ 31-1, glaube ich).

Zusätzlich zu dem, was die andere beantwortet, wenn Sie eine Zeichenfolge von mehr als 8 hexadezimalen Ziffern (aber bis zu 16 hexadezimalen Ziffern), können Sie es auf eine langen Verwendung Long.parseLong() konvertieren, anstatt in einem int Integer.parseInt() verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top