Как я могу предотвратить java.ленг.NumberFormatException: для входной строки: "N / 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)`
Как я могу предотвратить это исключение?
5 ответов:
"N/A"
не является целым числом. Он должен броситьNumberFormatException
Если вы попытаетесь разобрать его на целое число.проверьте перед разбором. или обрабатывать
Exception
правильно.
- Обработка Исключений*
try{ int i = Integer.parseInt(input); }catch(NumberFormatException ex){ // handle your exception ... }
или целое число шаблону -
String input=...; String pattern ="-?\d+"; if(input.matches("-?\d+")){ // any positive or negetive integer or not! ... }
очевидно, что вы не можете разобрать
N/A
toint
значение. вы можете сделать что-то вроде следующего, чтобы справиться с этимNumberFormatException
.String str="N/A"; try { int val=Integer.parseInt(str); }catch (NumberFormatException e){ System.out.println("not a number"); }
сделать обработчик исключений, как это,
private int ConvertIntoNumeric(String xVal) { try { return Integer.parseInt(xVal); } catch(Exception ex) { return 0; } } . . . . int xTest = ConvertIntoNumeric("N/A"); //Will return 0
целое число.parseInt (str) закидываем
NumberFormatException
если строка не содержит разбираемое целое число. Вы можете иметь то же самое, что и ниже.int a; String str = "N/A"; try { a = Integer.parseInt(str); } catch (NumberFormatException nfe) { // Handle the condition when str is not a number. }