Groovy 中有没有办法从字符串中创建一个列表?即我有一个 String "[0,1]"
,我想将它转换为[0,1]
(和实际的常规列表)以便进行操作。
字符串的值可能是二维"[ [1], [2, 3]]"
的 ( ),但可以肯定它始终是一个列表。
Groovy 中有没有办法从字符串中创建一个列表?即我有一个 String "[0,1]"
,我想将它转换为[0,1]
(和实际的常规列表)以便进行操作。
字符串的值可能是二维"[ [1], [2, 3]]"
的 ( ),但可以肯定它始终是一个列表。
您可以使用 Eval.me 但显然,请注意评估任何旧字符串
def a = Eval.me( '[ 1, 2 ]' )
一种替代方法可能是:
def a = new groovy.json.JsonSlurper().parseText( '[ 1, 2 ]' )
由于您在问题中提供的两种列表形式都是有效的 Json :-)
给定以下基准测试代码:
@Grab('com.googlecode.gbench:gbench:0.4.1-groovy-2.1') // v0.4.1 for Groovy 2.1
import groovy.json.JsonSlurper
def r = benchmark( measureCpuTime:false ) {
'eval' {
def a = Eval.me( '[ 1, 2 ]' )
assert a == [ 1, 2 ]
}
'json' {
def a = new JsonSlurper().parseText( '[ 1, 2 ]' )
assert a == [ 1, 2 ]
}
}
r.prettyPrint()
我得到输出:
eval 4661121
json 7257
So it's much quicker going the json route ;-)