标签:
异常信息:
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