字符串转Integer类型,一般使用 Integer.valueOf 或者是 Integer.parseInt方法。
上述两种方法是转换纯数字字符串的时候才能正常使用,一旦字符串带有小数,就会提示如下错误信息:
java.lang.NumberFormatException: For input string: "0.00"
解决思路:将带有小数点的字符串转换为Double类型,再通过Double.intValue()方法获取对应Integer 类型数据。
实战:
int height = list.stream().filter(item ->{
return item != null;
}).mapToInt(item->{
if(item.get("HEIGHT") != null){
Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
Matcher isNum = pattern.matcher(String.valueOf(item.get("HEIGHT")));
if (isNum.matches()) {
return Double.valueOf(String.valueOf(item.get("HEIGHT"))).intValue();
}
}
return 0;
}).max().getAsInt();
核心代码片段:
Double.valueOf(String.valueOf(item.get("HEIGHT"))).intValue();