cause: java.lang.numberformatexception: for input string:转换异常

 今天在敲代码测试的时候突然出现了cause: java.lang.numberformatexception: for input string:这样的错误,找了一个小时都没有找到,错误如下:

org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.lang.NumberFormatException: For input string: "北京市昌平区"
### The error may exist in com/itheima/mapper/StoreMapper.xml
### The error may involve com.itheima.mapper.StoreMapper.updateId
### The error occurred while executing an update
### Cause: java.lang.NumberFormatException: For input string: "北京市昌平区"

结果后来同学帮我看代码发现,我配置文件写错了,本来是应该修改的值不为null而且不是空字符串,结果我写成非空格了。导致错误。但是又一个问题出现了,就是之前上课的时候我也是写的空格,为什么就可以呢?

于是我翻了之前上课时候的代码,发现我当时用来测试的数据是"123456",也就是双引号中写的是数字,但是很奇怪啊,不管是"123456"还是"北京市昌平区",这都应该是字符串啊,怎么会造成这样呢?底层代码对于我而言有点难找,然后我就查CSDN,终于找到一篇帖子。

地址:(5条消息) 报错解决:java.lang.NumberFormatException: For input string:“********”_欢乐的八爪鱼的博客-CSDN博客

这篇帖子是一个数据处理过滤的帖子,前辈在刨源码的时候发现是parseInt方法中会限定10位,

出于好奇,我也去试了试:

 我直接试了10位数:

 没有问题,可以执行。

接着我试了11位:

 还是可以。

 不管我试了多长。。。。

 abc也不行,感觉不是ASCII码表的关系:

总之,我暂时没有找到为什么会出现这样的问题,明天问下老师吧,或者有哪位大佬可以解答一下吗?

 

 解决方法就是:判断null和非空字符串,如图下:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值