java - 使用 stream().filter() 在 java List 上执行不区分大小写的搜索

标签 java list search java-stream case-insensitive

我正在尝试使用 stream().filter(...) 在 Java List 上执行不区分大小写的搜索。

我的搜索功能工作正常,但我还没有设法实现它在不区分大小写的情况下工作。我的函数看起来像这样:

public static List<License> searchByEverything(String keyword, String dealerid){
    List<License> licenseDealerList = getLicensesByDealer(dealerid);

   // org.apache.commons.lang3.StringUtils.containsIgnoreCase(keyword);


    Predicate<License> licensePredicate = u -> u.name1.contains(keyword);
    List<License> filteredList = licenseDealerList.stream().filter(licensePredicate).collect(Collectors.toList());

    return filteredList;
}

如您所见,我尝试使用 apache 公共(public)库,但我不知道如何将它包含在我的 stream().filter(...) 中。我研究了一些不同的方法,但并没有真正理解如何将它们中的任何一种实现到我的方法中。在我的例子中,从对象值的字符串值执行搜索并返回一个对象非常重要。

我知道我可以使用类似 matchAny() 的东西来代替 filter() 但我不明白如何将它作为对象返回。

提前致谢

最佳答案

你可以使用 toLowerCase() :

u -> u.name1.toLowerCase().contains(keyword.toLowerCase());

这样两个值的大小写相同,您的搜索不区分大小写。

关于java - 使用 stream().filter() 在 java List 上执行不区分大小写的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43753292/

相关文章:

java - 没有 API 时如何获取 Android Market 数据?

java - 将 Spring 托管 bean 的引用传递给非托管类?

java - 有什么方法可以在 cassandra 中实现无状态分页吗?

list - 为什么将列表整数元素转换为字符串时得到 "interface conversion: interface is int32"?

PHP/MYSQL 从一个表获取引用,然后从另一个表获取结果。

ios - 如何在 iOS 的 Web View 中实现 "find in page"?

java - 如何从 Hibernate 搜索结果中排除 isDeleted 数据库字段设置为 0 的实体?

java - 将 Java 比较器转换为 Scala 排序

list - 在 Haskell 中“重复”?

java - 将 while 循环中的项目添加到 ArrayList java