Tijdens het uitvoeren van mijn code krijg ik een 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)`
Hoe kan ik voorkomen dat deze uitzondering optreedt?
Antwoord 1, autoriteit 100%
"N/A"
is geen geheel getal. Het moet NumberFormatException
gooien als je het probeert te ontleden naar een geheel getal.
Controleer voor het ontleden of behandel Exception
correct.
-
Afhandeling van uitzonderingen
try{ int i = Integer.parseInt(input); } catch(NumberFormatException ex){ // handle your exception ... }
of – Integer patroonovereenkomst–
String input=...;
String pattern ="-?\\d+";
if(input.matches("-?\\d+")){ // any positive or negetive integer or not!
...
}
Antwoord 2, autoriteit 7%
Maak een uitzonderingshandler zoals deze,
private int ConvertIntoNumeric(String xVal)
{
try
{
return Integer.parseInt(xVal);
}
catch(Exception ex)
{
return 0;
}
}
.
.
.
.
int xTest = ConvertIntoNumeric("N/A"); //Will return 0
Antwoord 3, autoriteit 6%
Integer.parseInt(str)genereert NumberFormatException
als de tekenreeks geen parseerbaar geheel getal bevat. Je kunt hetzelfde doen als hieronder.
int a;
String str = "N/A";
try {
a = Integer.parseInt(str);
} catch (NumberFormatException nfe) {
// Handle the condition when str is not a number.
}
Antwoord 4, autoriteit 5%
Het is duidelijk dat u N/A
niet kunt ontleden naar int
waarde. je kunt zoiets als het volgende doen om die NumberFormatException
af te handelen.
String str="N/A";
try {
int val=Integer.parseInt(str);
}catch (NumberFormatException e){
System.out.println("not a number");
}
Antwoord 5, autoriteit 2%
“N.v.t.” is een tekenreeks en kan niet worden geconverteerd naar een getal. Vang de uitzondering en behandel deze. Bijvoorbeeld:
String text = "N/A";
int intVal = 0;
try {
intVal = Integer.parseInt(text);
} catch (NumberFormatException e) {
//Log it if needed
intVal = //default fallback value;
}