Während ich meinen Code ausführe, erhalte ich Folgendes NumberFormatException
:
java.lang.NumberFormatException: For input string: "N/A"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)`
Wie kann ich verhindern, dass diese Ausnahme auftritt?
java
string
int
numberformatexception
codemaniac143
quelle
quelle
Antworten:
"N/A"
ist keine ganze Zahl. Es muss werfen,NumberFormatException
wenn Sie versuchen, es auf eine Ganzzahl zu analysieren.Überprüfen Sie dies vor dem Parsen oder behandeln Sie es
Exception
richtig.Ausnahmebehandlung
try{ int i = Integer.parseInt(input); } catch(NumberFormatException ex){ // handle your exception ... }
oder - Integer Pattern Matching -
String input=...; String pattern ="-?\\d+"; if(input.matches("-?\\d+")){ // any positive or negetive integer or not! ... }
quelle
Machen Sie einen Ausnahmebehandler wie folgt:
private int ConvertIntoNumeric(String xVal) { try { return Integer.parseInt(xVal); } catch(Exception ex) { return 0; } } . . . . int xTest = ConvertIntoNumeric("N/A"); //Will return 0
quelle
Offensichtlich können Sie nicht
N/A
nachint
Wert analysieren . Sie können so etwas wie das Folgende tun, um damit umzugehenNumberFormatException
.String str="N/A"; try { int val=Integer.parseInt(str); }catch (NumberFormatException e){ System.out.println("not a number"); }
quelle
Integer.parseInt (str) wirft ,
NumberFormatException
wenn die Zeichenkette nicht eine ganze Zahl parsable enthält. Sie können das gleiche wie unten hadle.int a; String str = "N/A"; try { a = Integer.parseInt(str); } catch (NumberFormatException nfe) { // Handle the condition when str is not a number. }
quelle
"N / A" ist eine Zeichenfolge und kann nicht in eine Zahl konvertiert werden. Fangen Sie die Ausnahme ab und behandeln Sie sie. Zum Beispiel:
String text = "N/A"; int intVal = 0; try { intVal = Integer.parseInt(text); } catch (NumberFormatException e) { //Log it if needed intVal = //default fallback value; }
quelle