java.lang.NumberFormatException: Ungültiger int: "" AUSNAHME

8

Wenn der Benutzer den Editiertext leer gelassen hat, tritt ein Fehler auf: java.lang.NumberFormatException: Invalid int: "". Der Fehler kommt in Zeile

%Vor%

und auch in der Zeile

%Vor%

Calci.java

%Vor%

LogCat:

%Vor%

Jeder hat eine Idee, wie man diesen Stack-Trace-Fehler löst.

    
anuj 19.03.2014, 10:20
quelle

8 Antworten

6

Verwenden Sie Folgendes.

%Vor%     
user3007252 19.03.2014 11:43
quelle
2

Wenn wir .equals() verwenden, besteht immer noch die Chance von NumberFormatException , denn wenn der Benutzer ein Leerzeichen eingibt, wird eine Sonderzeichen-Ausnahme auftreten. Ändern Sie Ihren Code wie folgt ..

%Vor%     
Antony 19.03.2014 10:48
quelle
1
%Vor%

Verwenden Sie == nicht für den Vergleich von Zeichenfolgen. Siehe Wie kann ich Zeichenfolgen in Java vergleichen?

  

NumberFormatException

Da Sie vom Benutzer bereitgestellte Eingaben analysieren, sollten Sie die Ausnahme abfangen und den Analysefehler entsprechend behandeln.

    
laalto 19.03.2014 10:22
quelle
0

Sie konvertieren den Wert Ihres editedtext in einen String wie unten in Ihrem Code

%Vor%

Sie müssen also

verwenden %Vor%

statt

%Vor%

und noch eine Sache, die Sie ändern müssen, ist diese Zeile

%Vor%

mit

%Vor%     
InnocentKiller 19.03.2014 10:26
quelle
0

Für den Teil:

%Vor%

versuche das:

%Vor%

Das hat mir vor einiger Zeit bei einem sehr ähnlichen Problem geholfen

    
Fraggles 19.03.2014 10:27
quelle
0

Bitte ändern Sie wie folgt,

%Vor%

});

    
Sekhar Madhiyazhagan 19.03.2014 10:37
quelle
0

Zuerst sollten Sie String-Werte nicht mit == operator vergleichen, stattdessen sollten Sie equals() method aus der String-Klasse verwenden.

Nächste Änderung.

%Vor%

Ändern Sie die obigen Dinge, und Ihr Code sollte perfekt funktionieren.

    
Lucifer 19.03.2014 10:23
quelle
0

Das Problem ist irreführend, es handelt sich um die Größe einer Ganzzahl, da java int: 2 ^ 32-1 ist, Ihre Ganzzahl kann aus 10 Ziffern bestehen, zB: 0123456789. Wenn die Ganzzahl jedoch 11 Ziffern ist, zB: 0123456789 *** 1 ***. dann müssen Sie BigInteger verwenden, siehe: Ссылка

    
Shoresh 15.08.2016 23:42
quelle

Tags und Links