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

2022-01-14 00:00:00 string int java numberformatexception

在运行我的代码时,我得到一个 NumberFormatException:

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)`

如何防止此异常发生?

推荐答案

"N/A" 不是整数.如果您尝试将其解析为整数,它必须抛出 NumberFormatException.

"N/A" is not an integer. It must throw NumberFormatException if you try to parse it to an integer.

解析前检查或正确处理Exception.

Check before parsing or handle Exception properly.

  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!
 ...
}

相关文章