字符串去掉空格问题

遇到一个头痛的问题,解析不出来这个空格到底是什么空格,字符串str=“123  48 454878”,想要只获取到数字,使用方法str.replace(" “,”");得到结果为“123  48454878”,前面那两坨不是空格吗?

正则表达式中,\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。但是这个空格匹配不了\s。如下:

String str = "123  48 454878";
System.out.println(str.replaceAll("\\s", ""));//结果为123  48454878,只去掉了8和4之间的空格

后来才知道,空格还有其他:
1.不间断空格\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ;
2.半角空格(英文符号)\u0020,代码中常用的;
3.全角空格(中文符号)\u3000,中文文章中使用。

使用转换工具,将上面的空格拷入,结果转换为\u3000,所以修改代码:

String str = "123  48 454878";
System.out.println(str.replaceAll("\\u3000", "").replaceAll("\\s", ""));//结果为12348454878
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值