java.lang.NumberFormatException: Für die Eingabezeichenfolge

7

Die Eclipse sagt, dass lang und ich kann keine Lösung finden

  

Ausnahme im Thread "main" java.lang.NumberFormatException: Für Eingabezeichenfolge: "2463025552"       bei java.lang.NumberFormatException.forInputString (unbekannte Quelle)       at java.lang.Integer.parseInt (Unbekannte Quelle)       at java.lang.Integer.parseInt (Unbekannte Quelle)       bei Main.main (Main.java:31)

%Vor%

Ich lese von Datei in diesem Format Name-adres, Telefon und Anzeige in arraylist setzen für Telefon ich habe Problem

    
quelle

7 Antworten

25

Integer.parseInt löst eine NumberFormatException aus, wenn die übergebene Zeichenfolge keine gültige Darstellung einer Ganzzahl ist. Hier versuchen Sie, 2463025552 zu übergeben, was außerhalb des ganzzahligen Bereichs liegt.

verwende stattdessen lang

%Vor%     
PermGenError 18.12.2012 14:35
quelle
16

Das eigentliche Problem ist, dass eine Telefonnummer keine Ganzzahl ist. Es ist ein String . Sie sollten es nicht als Nummer speichern, aus ähnlichen Gründen wie das Problem, dem Sie jetzt begegnen. Gleiches gilt für Postleitzahlen, Trikotnummern des Sportteams und eine Vielzahl anderer "gefälschter" Nummern.

    
Tom G 18.12.2012 14:37
quelle
4

Eine 32-Bit-Ganzzahl mit Vorzeichen kann nur bis zu 2 ^ 31 lesen. Sie müssen einen größeren Datentyp verwenden. Lange wirst du bis zu 2 ^ 63 bekommen.

    
Harsh Kothari 18.12.2012 14:38
quelle
2

Die grundlegende Sache ist, dass wir keine Telefonnummer brauchen, um Teil einer arithmetischen Berechnung wie Addition, Subtraktion usw. zu sein. Daher können wir sie als String sicher nehmen.

    
ramesh 18.12.2012 15:27
quelle
1
%Vor%

liegt außerhalb des Bereichs für den int-Datentyp, versuchen Sie, eine kleinere Zahl anzugeben. Überprüfen Sie auch, ob es im richtigen Zahlenformat ist (wie keine Leerzeichen usw.)

    
Pradeep Simha 18.12.2012 14:36
quelle
0

Ändern Sie den Datentyp in long oder bigint. Ihre Zeichenkette ist zu lang dann int, deshalb hat sie Ausnahme.

    
Kanagaraj M 18.12.2012 14:44
quelle
0

Integer.parseInt( s2[1].trim() ); hier ist dein Problem. Ändere also deine Analyse Integer in Long

    
Ravi 18.12.2012 14:38
quelle

Tags und Links