Anuska
Anuska

Reputation: 91

Stream filter add condition

How can I add a condition only when result.getExtendedAddress() exists using Lamdas?

Original condition:

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

New condition:

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

This new condition seems overly complicated and I would like to know if there is a better way to do it?

Upvotes: 0

Views: 154

Answers (1)

Anuska
Anuska

Reputation: 91

Thanks to @Thomas I was able to quickly find the solution using StringUtils.containsIgnoreCase(). The method is described here.

Solution:

.filter(result -> StringUtils.isNotBlank(title) &&
                        (StringUtils.containsIgnoreCase(result.getTitle(), title) ||
                                StringUtils.containsIgnoreCase(result.getAdditionalAddress(), title)))

Upvotes: 1

Related Questions