You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java:如何仅保留字符串中的数字与小数点,去除其他字符?

解决正则过滤数字和小数点的问题

嘿,我来帮你搞定这个正则匹配的小问题!

你遇到的问题出在写的正则表达式上:distance.replaceAll("[^0-9 + \\.]", "") 里多了不必要的空格和+符号,而且小数点的转义也是多余的——在正则的字符类[]里,.就是普通字符,不需要加反斜杠转义。这就导致你的代码会错误保留空格和+,却没正确过滤掉其他非目标内容。

正确的实现方式

你需要把正则改成只排除非数字(0-9)和非小数点的字符,同时注意Java字符串不可变,要把replaceAll的返回值重新赋值给变量:

distance = distance.replaceAll("[^0-9.]", "");

举个例子验证

比如输入字符串是 "XYZ789.01!@#$%^",用上面的代码处理后,得到的结果就是 "789.01",完全符合你只保留数字和小数点的需求。

内容的提问来源于stack exchange,提问作者sosumi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:07:49