在stream()中执行大于或等于过滤器

时间:2019-03-20 13:03:59

标签: java filter stream

我试图做一个stream()过滤器以仅提取字符串FedwireTagLabel字段大于“ 1520”的记录。这是我当前拥有的代码:

         FedwireMessage filterFinancials = financialMessageRecords.stream()
            .filter(e -> e.getFedwireTagLabel() >= "1520")
            .findAny()
            .orElse(null);

这是一个错误。您知道在stream()。filter()中可以对字符串字段进行大于或等于的处理吗?

再次感谢

1 个答案:

答案 0 :(得分:0)

您正在此处比较两个String。您需要将标签转换为Integer

 FedwireMessage filterFinancials = financialMessageRecords.stream()
            .filter(e -> Integer.parseInt(e.getFedwireTagLabel()) >= 1520)
            .findAny()
            .orElse(null);

实际上,在>=上使用String调用方法CompareTo,该方法根据字母默认比较返回-101

有关更多信息,请查看this post

最佳