我有这样的地图:
[FOOBAR:["FOOBAR"], \b(De(\w+))\b:["DELI", "DELEGATE"], SSN:["111-55-4444"]]
当我迭代地图并打印类类型的键时,我得到了这个:
myMap.each{ k, v -> println "${k.class}:${v}" }
class java.lang.String:[FOOBAR]
class org.codehaus.groovy.runtime.GStringImpl:[DELI, DELEGATE]
class java.lang.String:[111-55-4444]
问题
如何找到GStringImpl类的密钥?
我尝试了以下但是不起作用:
myMap[/\b(De(\w+))\b/] == ["DELI", "DELEGATE"]
| | |
| null false
[FOOBAR:[FOOBAR], \b(De(\w+))\b:[DELI, DELEGATE], SSN:[111-55-4444]]
更新:基于评论
OP希望将变量用作键
答案 0 :(得分:1)
在这里,它只是微不足道的,你需要把它放在(..)
之间。
将其改为:
def myMap = [FOOBAR:["FOOBAR"], \b(De(\w+))\b:["DELI", "DELEGATE"], SSN:["111-55-4444"]]
为:
def userKey = 'key'
def myMap = [FOOBAR:["FOOBAR"], (userKey):["DELI", "DELEGATE"], SSN:["111-55-4444"]]
编辑:更新更多信息。
Groovy接受没有引号和引号的键。所以,如果它是对象,则需要在(...)之间进行包装。它可以是任何物体。