当前位置: 首页 > 知识库问答 >
问题:

如何防止java。lang.NumberFormatException:对于输入字符串:“不适用”?

公孙阳羽
2023-03-14

运行代码时,我收到一个数字格式异常:

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

如何防止此异常发生?

共有3个答案

柯甫
2023-03-14

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

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

.
.
.
.

int xTest = ConvertIntoNumeric("N/A");  //Will return 0
林弘壮
2023-03-14

整数如果字符串不包含可解析整数,则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.
}
哈和惬
2023-03-14

“不适用”不是整数。如果试图将其解析为整数,它必须抛出NumberFormatException。

解析前检查或正确处理Exception

>

try{
    int i = Integer.parseInt(input);
} catch(NumberFormatException ex){ // handle your exception
    ...
}

or-整数模式匹配-

String input=...;
String pattern ="-?\\d+";
if(input.matches("-?\\d+")){ // any positive or negetive integer or not!
 ...
}
 类似资料: