我是JAVA和Groovy的新手,但是我有以下数据:
“ [[[260000032:32129,1000000001:此客户],[260000032:194571,1000000001:那个客户],[260000032:201432,1000000001:另一个客户]]”
例如,当我搜索“ 32129”时,我想找到“此客户”。
我尝试了很多方法,但是失败了。:/
答案 0 :(得分:0)
[
[260000032:32129, 1000000001:"THIS CUSTOMER"],
[260000032:194571, 1000000001:"THAT CUSTOMER"],
[260000032:201432, 1000000001:"ANOTHER CUSTOMER"]
]
.find { it.getAt(260000032) == 32129 }
.getAt(1000000001)
编辑:我的回答是假设您已经有对象。但是,如果您的数据实际上只是一个非标准格式的字符串(即,它的字符串文字不带引号),则可能需要执行类似Regex解析的操作。
def input = "[[260000032:32129, 1000000001:THIS CUSTOMER], [260000032:194571, 1000000001:THAT CUSTOMER], [260000032:201432, 1000000001:ANOTHER CUSTOMER]]"
(input =~ /\[260000032\:([^\,]+),\s1000000001\:([^\]]+)/)
.collect { it }
.collectEntries { [(it[1]): it[2]] }
.getAt('32129')