查找key是否包含map中的值并返回布尔值

时间:2017-12-07 09:34:14

标签: groovy collections

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

例如,如果我的地图键是' X1234_RANDOM_STRING',如果我的参数是X1234,我想查看我的地图并查看具有该值的键是否存在并返回true为假。

目前我正在使用.find但是这并没有返回布尔值,我想我可以使用.containsKey()但是当我的参数只包含字符串的一部分时,这不会起作用。< / p>

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

2 个答案:

答案 0 :(得分:3)

如果您需要布尔输出,请使用collect代替find

你走了:

def code = 'X1234'
def map = [X1234_RANDOM_STRING: 1]
print map.collect {    it.key.toString().contains(code) }

答案 1 :(得分:2)

请考虑以下事项(非常接近您的尝试):

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

演员表因Groovy Truth而有效。