当前我正在使用以下代码片段来创建过滤器,在地图中匹配并提供结果集的过滤列表.
final Map filteredMap = Maps.filterKeys(mymap, Predicates.containsPattern("^Xyz"));
Run Code Online (Sandbox Code Playgroud)
但是,Guava Predicates.containsPattern会进行区分大小写的匹配.
我应该如何使用containsPattern来做case-Insensitive匹配.
Xae*_*ess 11
使用
Predicates.contains(Pattern.compile("^Xyz", Pattern.CASE_INSENSITIVE))
Run Code Online (Sandbox Code Playgroud)
作为谓词而不是.请参阅核心Java Pattern和Predicates.contains.
编辑(OP评论后):是的,你可以这样写:
Predicates.containsPattern("(?i)^Xyz"))
Run Code Online (Sandbox Code Playgroud)
(参见Pattern的文档:也可以通过嵌入式标志表达式(?i)启用不区分大小写的匹配.)但它的IMO不太自我解释,加上Pattern第一个示例编译时可以缓存到某些私有静态最终常量循环,可以提高性能.
| 归档时间: |
|
| 查看次数: |
2631 次 |
| 最近记录: |