java.lang.NumberFormatException

本文解析了java.lang.NumberFormatException异常的几种常见情况及其解决方案,包括处理空格、空字符串和null值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常信息:

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

转载于:https://www.cnblogs.com/believe-myself/p/4506149.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值