Groovy中有没有办法用字符串创建列表?即我有一个字符串"[0,1]"
,我想将其转换为[0,1]
(以及实际的常规列表)以便操作。
字符串的值可能是二维的("[ [1], [2, 3]]"
),但肯定它总是一个列表。
答案 0 :(得分: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
所以走json路线要快得多; - )