起因:有个需求市需要对百分数进行一个比较,需要对百分号的字符串进行格式化
首先我实例化出来一个formator
NumberFormat format1 = NumberFormat.getPercentInstance();
然后用这个去解析字符串
Number number = format1.parse(czbl);
我解析单个参数并没有任何的问题 但是当我在使用stream的parallelStream() 时就出现了一些奇奇怪怪的问题
,这是因为NoumberFormat是线程不安全的,所以在使用parallelStream()的时候代码要写成这样的:
links = relationship.getLinkOnly().parallelStream()
.filter(link -> (!"-".equals(link.get("percentage"))))
.filter(link -> StringUtils.isNotEmpty((String)link.get("percentage")))
.filter(link -> {
try {
//要在这里使用它获取多个实例
NumberFormat format2 = NumberFormat.getPercentInstance();
String czbl = (String) link.get("percentage");
Number number = format2.parse(czbl);
double re = number.doubleValue();
return re >= num;
} catch (ParseException e) {
e.printStackTrace();
}
return false;
}).collect(Collectors.toSet());