目录
1.前提
项目上请求第三方服务,其中有个字段为字符串和小数的混合,
类似:武汉0.1333;北京10.25;其它地区110.1
需要将其中的小数取出。
技术积累:
正则表达式全解析+常用示例
常用正则表达式合集,这一篇就够了!!
Pattern 和 Matcher
2.实现
String str = "武汉0.1333;北京10.25;其它地区110.1";
List<Double> list = new ArrayList<>();
// 声明正则,匹配数字(1个或多个).数字(1个或多个)
String regex = "\\d+\\.+\\d+";
// Pattern的构造方法是私有的,不可以直接创建,通过静态方法compile创建Pattern对象,查看源代码发现compile直接调用了Pattern构造函数。
Pattern pattern = Pattern.compile(regex);
// 返回一个Matcher对象。Matcher类的构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例。
Matcher matcher = pattern.matcher(str);
// 对目标字符串进行正则匹配,通过while可以多次执行find方法,获取多次的匹配结果,代码编写方式类似于iterator.next()。
while (matcher.find()) {
// group() 返回匹配到的字符串,结合find函数使用。
String group = matcher.group();
list.add(Double.parseDouble(group));
}
System.out.println(list);