While running my code I am getting a 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)`
How can I prevent this exception from occurring?
\"N/A\"
is not integer. It must throw NumberFormatException
if you try to parse it to integer.
Check before parsing. or handle Exception
properly.
- Exception Handling*
try{
int i = Integer.parseInt(input);
}catch(NumberFormatException ex){ // handle your exception
...
}
or - Integer pattern matching -
String input=...;
String pattern =\"-?\\\\d+\";
if(input.matches(\"-?\\\\d+\")){ // any positive or negetive integer or not!
...
}
Obviously you can\'t parse N/A
to int
value. you can do something like following to handle that NumberFormatException
.
String str=\"N/A\";
try {
int val=Integer.parseInt(str);
}catch (NumberFormatException e){
System.out.println(\"not a number\");
}
Make an exception handler like this,
private int ConvertIntoNumeric(String xVal)
{
try
{
return Integer.parseInt(xVal);
}
catch(Exception ex)
{
return 0;
}
}
.
.
.
.
int xTest = ConvertIntoNumeric(\"N/A\"); //Will return 0
Integer.parseInt(str) throws NumberFormatException
if the string does not contain a parsable integer. You can hadle the same as below.
int a;
String str = \"N/A\";
try {
a = Integer.parseInt(str);
} catch (NumberFormatException nfe) {
// Handle the condition when str is not a number.
}
\"N/A\" is a string and cannot be converted to a number. Catch the exception and handle it. For example:
String text = \"N/A\";
int intVal = 0;
try {
intVal = Integer.parseInt(text);
} catch (NumberFormatException e) {
//Log it if needed
intVal = //default fallback value;
}