流过滤添加条件

问题描述 投票:0回答:1

如何使用 Lambda 仅在

result.getExtendedAddress()
存在时添加条件?

原始状态:

.filter(result -> StringUtils.isNotBlank(title) && StringUtils.contains(result.getTitle().toLowerCase(), title.toLowerCase()))

新状况:

.filter(result -> StringUtils.isNotBlank(title) &&
                        (StringUtils.contains(result.getTitle().toLowerCase(), title.toLowerCase()) ||
                                ((result.getExtendedAddress()!= null) && (StringUtils.contains(result.getExtendedAddress().toLowerCase(), title.toLowerCase()))))

这个新条件似乎过于复杂,我想知道是否有更好的方法?

java java-stream
1个回答
1
投票

感谢@Thomas,我能够使用

StringUtils.containsIgnoreCase()
快速找到解决方案。该方法描述于here

解决方案:

.filter(result -> StringUtils.isNotBlank(title) &&
                        (StringUtils.containsIgnoreCase(result.getTitle(), title) ||
                                StringUtils.containsIgnoreCase(result.getAdditionalAddress(), title)))
© www.soinside.com 2019 - 2024. All rights reserved.