如何在Java中从字符串提取整数或浮点型数值
Java字符串提取整数/浮点数实现方案
问题原因
现有实现中replaceAll("[^\\d]", " ")的正则仅保留阿拉伯数字,会直接清除浮点数的小数点.,因此无法提取带小数的数值。
修改后代码
public String getNumbers(String str){ // 保留数字和小数点,其余字符替换为空格 str = str.replaceAll("[^\\d.]", " "); str = str.trim(); // 合并连续空格 str = str.replaceAll(" +", " "); if (str.equals("")) return "-1"; return str; }
效果验证
- 输入
"delay: 5 days",返回结果5,兼容原有整数提取逻辑 - 输入
"this a sample, delay: 7.1 days",返回结果7.1,支持浮点数提取
注:该实现基于你给出的「输入必然包含一个合法整数/浮点数」的前提,若需适配非法格式(如多个连续小数点、首尾小数点)可额外增加格式校验逻辑。
内容的提问来源于stack exchange,提问作者BadRobot
相关产品推荐
相关产品推荐

