Вопрос-ответ

How can I prevent java.lang.NumberFormatException: For input string: "N/A"?

Как я могу предотвратить исключение java.lang.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)`

Как я могу предотвратить возникновение этого исключения?

Переведено автоматически
Ответ 1

"N/A" не является целым числом. Оно должно выдавать ошибку NumberFormatException при попытке преобразовать его в целое число.

Проверьте перед синтаксическим анализом или обработайте Exception должным образом.


  1. Обработка исключений


    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!
...
}
Ответ 2

Integer.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.
}
Ответ 3

Создайте обработчик исключений, подобный этому,

private int ConvertIntoNumeric(String xVal)
{
try
{
return Integer.parseInt(xVal);
}
catch(Exception ex)
{
return 0;
}
}

.
.
.
.

int xTest = ConvertIntoNumeric("N/A"); //Will return 0
Ответ 4

Очевидно, что вы не можете разобрать значение N/A в int значение. вы можете сделать что-то вроде следующего, чтобы справиться с этим NumberFormatException.

   String str="N/A";
try {
int val=Integer.parseInt(str);
}catch (NumberFormatException e){
System.out.println("not a number");
}
java string