zoukankan      html  css  js  c++  java
  • 使用正则提取字符串中的数字(包含整数和小数)

    1.正则表达式为:

    ([1-9]d*.?d*)|(0.d*[1-9])

    2.工具类如下:

    public  List<Double>  getNumberFromString(String text) {
            List<Double> numbers=new ArrayList<>();
            String pattern="([1-9]\d*\.?\d*)|(0\.\d*[1-9])";
            // 创建 Pattern 对象
            Pattern r = Pattern.compile(pattern);
            // 现在创建 matcher 对象
            Matcher matcher = r.matcher(text);
            Set<String> matchStrs = new HashSet<>();
            while (matcher.find()) {
                //获取当前匹配的值
                matchStrs.add(matcher.group());
            }
            if(matchStrs.size()==0){
                return numbers;
            }
            for(String s:matchStrs){
                try{
                    double number=Double.parseDouble(s);
                    numbers.add(number);
                }catch(Exception e){
                    continue;
                }
            }
            return numbers;
        }
    
    

    3.测试

    测试用例:sdsad500sd200.35dd

    输出结果为:

  • 相关阅读:
    20130118
    延迟加载、分页显示等功能的增加
    ==和Equals的区别
    20160115--Hibernate
    20160108--搜索查询
    20150105
    20151229--数据表格
    20151226--easyUI
    DreamWeaver使用技巧(转)
    20121109
  • 原文地址:https://www.cnblogs.com/xian-yu/p/13711602.html
Copyright © 2011-2022 走看看