java.lang.NumberFormatException

来源:互联网 发布:淘宝店铺客服模板 编辑:程序博客网 时间:2024/05/07 02:44

异常信息:

1.Exception in thread "main" java.lang.NumberFormatException: For input string: "1 "   

  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)   

  at java.lang.Integer.parseInt(Integer.java:458)   

  at java.lang.Integer.parseInt(Integer.java:499)   

  at com.geelou.test.ErrTest.main(ErrTest.java:6)

2.java.lang.NumberFormatException: For input string: "" 

  java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 

  java.lang.Long.parseLong(Long.java:424)  java.lang.Long.parseLong(Long.java:461)

3.java.lang.NumberFormatException: null 

  java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

   java.lang.Long.parseLong(Long.java:424)  java.lang.Long.parseLong(Long.java:461)

错误关键字 java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常

错误原因:

1.中的问题想将String转换为int类型时出错,原因:"1 "中存在空格,字符串中存在空格不能直接转换为数字。

2.中的问题为将字符串转换为Long类型是出错,原因:是字符串为""(空串)。

3.中问题为将字符串转换为Long类型是时出错,原因为字符串为null

解决方法:

1.在转换之前去空格,Integer.parseInt(numString.trim()) ;

2.在转换之前判空串:if(s!=""){转换}

3.在转换之前判空:if(s!=null){转换}

拓展:

出现这个问题的原因一般为数据格式转换的问题。

看下面错误堆栈:

就知道是在转换什么类型的数据时出现了问题。

具体是哪个类的哪个方法的哪一行的错误了,找自己写的第一个类com.geelou.test.ErrTest.main(ErrTest.java:6) 原来是  com.geelou.test.ErrTest 类的main方法里的第6行出错了。 

这样就定位到了System.out.println(Integer.parseInt(numString));

具体是 Integer.parseInt(numString) 时出的错,知道了错误地方就可以相应的解决了

0 0