gpt4 book ai didi

java - 如何从参数为正则表达式的请求中获取数据?

转载 作者:行者123 更新时间:2023-11-30 07:53:12 26 4
gpt4 key购买 nike

对不起我的英语。我需要过滤 List<Contact>使用正则表达式按名称获取新的 List<Contact>其中名称匹配正则表达式。 Contact 有两个字段 name 和 id。

例如

^B.*$ - returns contacts that do NOT start with B

也许是这样的,但我不知道如何通过选择名称并与正则表达式进行比较来做到这一点。

Pattern pattern = Pattern.compile("...");

List<String> matching = list.stream()
.filter(pattern.asPredicate())
.collect(Collectors.toList());

我该怎么做?

最佳答案

你可以过滤List<Contact>通过它的名字。例如:

Pattern pattern = Pattern.compile("...");

List<Contact> matched = list.stream()
.filter(it -> it!=null && it.getName()!=null && pattern.matcher(it.getName()).matches())
.collect(Collectors.toList());

OR 使用过滤器链使代码更具表现力,例如:

List<Contact> matched = list.stream()
.filter(Objects::nonNull)
.filter(it -> it.getName() != null)
.filter(it -> pattern.matcher(it.getName()).matches())
.collect(Collectors.toList());

关于java - 如何从参数为正则表达式的请求中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com