Java 需要去掉聚合操作中的三元运算符
SonarQube告诉我需要将三元运算符的用法转换为“if”/“else”结构。 我该怎么做Java 需要去掉聚合操作中的三元运算符,java,ternary-operator,Java,Ternary Operator,SonarQube告诉我需要将三元运算符的用法转换为“if”/“else”结构。 我该怎么做 public static String transform(final List<String> list) { return list.stream().filter(p -> p.matches(".*\\d.*")) .reduce((a, b) -> (Integer.pa
public static String transform(final List<String> list) {
return list.stream().filter(p -> p.matches(".*\\d.*"))
.reduce((a,
b) -> (Integer.parseInt(a.replaceAll("\\D+", "")) > Integer
.parseInt(b.replaceAll("\\D+", "")) ? a : b))
.orElse("there are no numbers");
}
公共静态字符串转换(最终列表){
return list.stream().filter(p->p.matches(.*\\d.*))
.减少((a,
b) ->(Integer.parseInt(a.replaceAll(“\\D+”,“”))>Integer
.parseInt(b.replaceAll(“\\D+”,“)?a:b))
.orElse(“没有数字”);
}
三元运算符只是一个缩短的if/else
表达式,您的代码相当于:
公共静态字符串转换(最终列表){
return list.stream()
.filter(p->p.matches(.*\\d.*))
.减少((a,b)->{
if(Integer.parseInt(a.replaceAll(“\\D+”,”)>Integer.parseInt(b.replaceAll(“\\D+”,”)){
返回a;
}否则{
返回b;
}
})
.orElse(“没有数字”);
}
三元运算符只是一个缩短的if/else
表达式,您的代码相当于:
公共静态字符串转换(最终列表){
return list.stream()
.filter(p->p.matches(.*\\d.*))
.减少((a,b)->{
if(Integer.parseInt(a.replaceAll(“\\D+”,”)>Integer.parseInt(b.replaceAll(“\\D+”,”)){
返回a;
}否则{
返回b;
}
})
.orElse(“没有数字”);
}