Heim >häufiges Problem >Was ist eine NumberformatException?

Was ist eine NumberformatException?

青灯夜游
青灯夜游Original
2021-01-14 18:25:4659221Durchsuche

numberformatException zeigt eine Ausnahme bei der Zahlenformatierung an. Sie müssen prüfen, ob die Zeichenfolge mit Zeichenfolgen oder anderen Typen gemischt ist. Es ist wichtig zu beachten, dass der Inhalt im Text eine Zeichenfolge in Form einer Zahl sein muss.

Was ist eine NumberformatException?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.

Heute ist eine Ausnahme bei der digitalen Konvertierung aufgetreten. Nachdem ich mich damit befasst habe, habe ich einige Szenarien kurz zusammengefasst.




E/AdroidRutime: Schwerwiegende Ausnahme: java.lang.NumberFormatException: Ungültige int: „0“

java.lang.NumberFormatException  Das Zahlenformat ist abnormal. Diese Ausnahme wird ausgelöst, wenn versucht wird, einen String in einen angegebenen numerischen Typ zu konvertieren, und der String nicht dem für den numerischen Typ erforderlichen Format entspricht

Ungültiger int: „0“ Tipps Beim Konvertieren von „0“ in einen numerischen Typ ist ein Fehler aufgetreten.

Konkret handelt es sich um einen Fehler bei der Methode welcher Klasse und in welcher Zeile. Siehe den Fehlerstapel unten, at com .example. myclock.TimerView$5.onTextChanged(TimerView.java:95) In der onTextChanged-Methode der com.example.myclock.TimerView-Klasse liegt ein Fehler in Zeile 95 von imerView vor. java

. ------Ursachenanalyse------

„0“ hat nach 0 ein Leerzeichen und das Leerzeichen sollte entfernt werden, wenn die Zeichenfolge in eine Zahl umgewandelt wird.

------Lösung--------------------------------

Zum Beispiel: int vale =Integer.parseInt(s.toString ().trim()); // ToString() Dies ist die Methode zum Konvertieren in einen String. Trim() ist die Methode zum Entfernen der Leerzeichen auf beiden Seiten des Strings.

Andere Situationen, in denen NumberFormatException ausgelöst wird:

Fall 1, Überschreitung des Konvertierungsbereichs numerischer Typen:

Wird beim Konvertieren von Zeichen ausgelöst Integer.parseInt() NumberFormatException Ausnahme, ändern Sie die Zeichen kürzer und es wird gut sein
String line3[1]= "8613719716 ";
int int1=java.lang.Integer.parseInt(line3[1 ]);

Das Obige ist ein kurzer Abschnitt des Programms, aber während des laufenden Prozesses wird immer eine Ausnahme ausgelöst Zeichenfolge: „8613719716“

Der Speicherbereich des Typs int beträgt -2.147.483.648 --2.147.483.647. Verwenden Sie System.out.println(Integer.MAX_VALUE); die Ausgabe ist 2147483647. Und Ihr String line3[1]= „8613719716“ überschreitet diesen Maximalwert.

------Lösung--------------------------------

8613719716 kann überhaupt nicht direkt durch int dargestellt werden. Sie können nur long verwenden. Wenn es größer ist, müssen Sie BigInteger verwenden. Long.parseLong(String).

Referenz: http://www.myException.cn/j2se/NumberFormatException.html

Fall zwei: Beim Konvertieren des Werttyps wird die Situation nicht berücksichtigt, in der der Wert leer ist:

In Android ist die Reihenfolge korrekt? Ich habe vor, den erhaltenen edittext-Wert in eine ganze Zahl umzuwandeln .

startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());

 logcat 出现了如下错误05-12 10:26:35.536: ERROR/AndroidRuntime(293): java.lang.NumberFormatException: unable to parse '' as integer

Der folgende Fehler ist in logcat aufgetreten🎜🎜05-12 10:26:35.536: ERROR/AndroidRuntime(293): java.lang.NumberFormatException: '' kann nicht als Ganzzahl analysiert werden🎜🎜

. ------Ursachenanalyse--------------------

Wenn das Textfeld startTime_hour_edittext leer ist, wird Integer.parseInt es versuchen um „“ in eine Ganzzahl umzuwandeln. Aus diesem Grund tritt NumberFormatException auf. Daher müssen Sie vor der Konvertierung in den Typ int feststellen, ob das Textfeld startTime_hour_edittext leer ist.

------Lösung--------------------------------

verwendet <span >startTime_hour_int=Integer. parseInt(startTime_hour_edittext.getEditableText().toString());<code style="margin:0px; padding:1px 5px; border:0px; white-space:pre-wrap; background-color:rgb(239,240,241); font-weight:normal; font-style:normal"><span >startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());</span><span style="font-family:Arial,Helvetica Neue, Helvetica,sans-serif; color:#242729">之前</span>

因为 Integer.parseInt(String) 默认是十进制.

所以需要使用 Integer.parseInt(String, int) 并且指定要转换的n进制的数字的n。比如二进制是2.

------解决方案--------------------

int value = Integer.parseInt(input, 2);

更多编程相关知识,请访问:编程入门!!

Das obige ist der detaillierte Inhalt vonWas ist eine NumberformatException?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn