0

Groovyに文字列からリストを作成する方法はありますか?つまり、文字列があり、操作するために文字列(および実際のGroovyリスト)に"[0,1]"変換したいと思います。[0,1]

文字列の値は2次元()である可能性がありますが"[ [1], [2, 3]]"、常にリストになることは間違いありません。

4

1 に答える 1

3

Eval.meを使用できますが、明らかに、古い文字列の評価には注意してください。

def a = Eval.me( '[ 1, 2 ]' )

別の方法は次のとおりです。

def a = new groovy.json.JsonSlurper().parseText( '[ 1, 2 ]' )

あなたがあなたの質問で与える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ルートを使用する方がはるかに高速です;-)

于 2013-03-19T22:50:15.587 に答える