避免 parseInt 为输入字符串抛出一个 NumberFormatException 的正确方法:“”

2022-09-02 22:57:44

当我运行 parseInt 时:

Integer.parseInt(myString);

它抛出:

NumberFormatException: For input string: ""

这是否意味着我做了这样的事情?

if(StringUtils.isNotBlank(myString))
  return Integer.parseInt(myString);
else
 return 0;

答案 1

是的,但是:将其包装在精简方法中(并消除冗余),或使用现有的实现,如Commons Lang的NumberUtils.toInt(str,defaultValue)else

NumberUtils.toInt(myString, 0);

此方法处理值和转换失败。null

自己写同样的东西是直截了当的:

  • 检查空值和/或...
  • ...包装异常NumberFormatExtension

答案 2

好吧,你可以改用条件运算符:

return StringUtils.isNotBlank(myString) ? Integer.parseInt(myString) : 0;

如果您需要在多个位置执行此操作,则可能需要将其放入单独的方法中。请注意,还应考虑 null 或包含非数字文本的情况。myString