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

2019-05-08 18:37发布

当运行我的代码我得到一个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)`

我怎样才能防止这种异常的发生?

Answer 1:

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


Answer 2:

显然,你不能解析N/A ,以int值。 你可以这样做以下来处理NumberFormatException

   String str="N/A";
   try {
        int val=Integer.parseInt(str);
   }catch (NumberFormatException e){
       System.out.println("not a number"); 
   } 


Answer 3:

例外处理程序是这样,

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

.
.
.
.

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


Answer 4:

的Integer.parseInt(STR)抛出NumberFormatException如果字符串不包含一个可分析的整数。 您可以hadle下同。

int a;
String str = "N/A";

try {   
   a = Integer.parseInt(str);
} catch (NumberFormatException nfe) {
  // Handle the condition when str is not a number.
}


Answer 5:

“N / A”是一个字符串,不能转换为数字。 捕获异常并处理它。 例如:

    String text = "N/A";
    int intVal = 0;
    try {
        intVal = Integer.parseInt(text);
    } catch (NumberFormatException e) {
        //Log it if needed
        intVal = //default fallback value;
    }


文章来源: How can I prevent java.lang.NumberFormatException: For input string: “N/A”? [closed]