如何防止 java.lang.NumberFormatException: For input string: "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)`

如何防止发生此异常?

原文由 codemaniac143 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

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

原文由 Subhrajyoti Majumder 发布,翻译遵循 CC BY-SA 4.0 许可协议

像这样制作一个异常处理程序,

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

.
.
.
.

int xTest = ConvertIntoNumeric("N/A");  //Will return 0

原文由 Rajaprabhu Aravindasamy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题