java - 如何防止 java.lang.NumberFormatException : For input string: "N/A"?

标签 java string int numberformatexception

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

解析前检查或正确处理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!
 ...
}

关于java - 如何防止 java.lang.NumberFormatException : For input string: "N/A"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18711896/

相关文章:

java - if 语句中的正则表达式 ÅÄÖ

java - 为什么在 List<String> 中将 String 简单转换为 Integer 时会出现错误

java - 如何强制 OpenJPA (1.2.2) 急切加载 @ManyToOne 组合主键?

java - 在java中将字符串转换为arraylist <Character>

java - 自动在外部存储字符串数据供以后在 Java 中使用

我可以在 C 中将 0.16、0.32 等正确转换为整数(16、32 等)吗?

java - jpa发现问题

java - 传递 3 个 double 和一个字符串,但我的最后两个变量被类忽略

c - 如何在c中比较2个整数的数字(没有数组和字符串)

c++ - Double 到 int 的转换在幕后?