如何防止java.lang.NumberFormatException:对于输入字符串:“N / A”?

2022-08-31 11:15:56

在运行我的代码时,我得到一个: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.
}