码迷,mamicode.com
首页 > 编程语言 > 详细

java.lang.NumberFormatException

时间:2015-05-15 17:08:27      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:

异常信息:

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) 时出的错,知道了错误地方就可以相应的解决了

java.lang.NumberFormatException

标签:

原文地址:http://www.cnblogs.com/believe-myself/p/4506149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!