You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy中判断字符串数组是否存在匹配正则元素的更简洁写法是什么?

Groovy 风格优化实现方案

Groovy 针对集合操作提供了大量内置便捷方法,你的需求可以直接使用any()方法实现,代码会大幅精简,可读性也更高:

def randomItemList = ['red apple', 'dog', 'cat']
def isApplePresent = randomItemList.any { it ==~ /.*apple.*/ }
println(isApplePresent) // 输出 true

优化点说明

  • 直接调用集合的any()方法,只要有一个元素满足闭包内的判断条件就会立即返回true,底层默认提前终止遍历,和你原本的break逻辑完全一致,性能没有差异
  • 用Groovy原生的斜杠字符串/正则内容/书写正则表达式,不需要额外转义特殊字符,比双引号字符串更适配正则场景
  • 用闭包隐式参数it代替手动下标遍历,省去循环变量声明、边界判断等冗余代码
  • 如果需要多次复用正则规则,可以提前声明为Pattern类型,复用性更高:
// 提前声明正则,可多处复用
def applePattern = ~/.*apple.*/
def isApplePresent = randomItemList.any { it ==~ applePattern }

如果需要判断全部元素匹配、或者查找所有符合条件的元素,还可以替换为every()、findAll()等内置集合方法,都是Groovy生态下的惯用写法。

内容的提问来源于stack exchange,提问作者JustCurious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:06:04