Groovy 查找键是否在映射中包含值并返回布尔值

Groovy 查找键是否在映射中包含值并返回布尔值,groovy,collections,Groovy,Collections,我在Groovy中有一个对象内的映射。该映射具有由长字符串组成的键,我想查看映射中的键是否包含字符串中的某个值,并返回布尔值 例如,如果我的映射键是“X1234_RANDOM_STRING”,如果我的参数是X1234,我希望查看映射中是否存在具有该值的a键,并返回true或false 目前我使用的是.find,但它不返回布尔值,我想我可以使用.containsKey(),但当我的参数可能只包含字符串的一部分时,这将不起作用 map.find { it.key.toString().cont

我在Groovy中有一个对象内的映射。该映射具有由长字符串组成的键,我想查看映射中的键是否包含字符串中的某个值,并返回布尔值

例如,如果我的映射键是“X1234_RANDOM_STRING”,如果我的参数是X1234,我希望查看映射中是否存在具有该值的a键,并返回true或false

目前我使用的是.find,但它不返回布尔值,我想我可以使用.containsKey(),但当我的参数可能只包含字符串的一部分时,这将不起作用

map.find {
   it.key.toString().contains(code)
}

如果需要布尔输出,请使用
collect
而不是
find

给你:

def code = 'X1234'
def map = [X1234_RANDOM_STRING: 1]
print map.collect {    it.key.toString().contains(code) }
考虑以下几点(非常接近您的尝试):

演员们的工作是因为他的工作

def map = ['X1234_RANDOM_STRING': 5150]
def code = 'X1234'

def found = map.find { it.toString().contains(code) } as Boolean
assert found

def notFound = map.find { it.toString().contains('foo') } as Boolean
assert ! notFound