java去除空格(可见空格和不可见空格均可)

今天业务验证阶段遇到了一个文件导入的报错。页面抛出的异常是:

invalid input syntax for type numeric:"31 "

不难看出这个就是在insert时这个"31 "的东西和DB对应字段的numeric类型不匹配导致的。因此采取了如下做法:

1、直接字符串去空格,在尝试了xxx.trim()和xxx.replaceAll("\\s","")都没有解决后尝试第二种做法:

2、逐个acscci码进行打印发现这个空格的acscci码时160(我理解类似于a和A的acscci码不同一样,空格的acscci码不光可以是32,还可以是160) 

在java中,有时候文本中的空格并不是普通的空格,而是特殊的空白字符或是不可见字符。这也就导致了普通的替换方式无法生效 。具体的解决方法可以使用UniCode转义序列\u00A0来标识acscci码为160的空格,并用正则来对所有空格进行一次性删除:

xxx.replaceAll("\\s\u00A0","")

问题解决!             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值