首页 > 解决方案 > 如何获取字符串的数值(整数或浮点数)?

问题描述

大家好,我正在尝试获取字符串中的数值。到目前为止,这种方法对我来说很有效,可以获取整数。但现在我也希望能够获得包含小数的数字。

如果我想提取字符串包含的数字,我使用: getNumbers("delay: 5 days") output = 5

现在我想得到“this a sample, delay: 7.1 days”的数量 output = 7.1 备注:str 总是可以改变,但总是会有一个数字(整数或浮点数)

public String getNumbers(String str){
        str = str.replaceAll("[^\\d]", " ");
        str = str.trim();
    
        str = str.replaceAll(" +", " ");
        
        if (str.equals(""))
           return "-1";
    
        return str;
    }

标签: java

解决方案


您可以使用正则表达式从字符串中仅检索数字,试试这个:

String numbers = Double.valueOf(yourStrValue.replaceAll("[^\\d.]+|\\.(?!\\d)", "")).toString()

但要注意离散数字将通过这种方式合并。例如,如果你有34fdf^.98这个过程产生34.98


推荐阅读