将int数组的字符串表示形式转换为groovy列表

时间:2013-06-20 07:04:37

标签: groovy

如果给我一个字符串,这是一个int数组的代表,如下面的

String d = "[2,3,4,5]"

我如何转换为字符串数组?

String[] f = convert d to array of String

另外我如何转换为int数组?

int[] f = convert d to array of int

2 个答案:

答案 0 :(得分:7)

我一直在寻找其他解决方案,因为我的值包含字符串,包括点和found this

此代码适用于您:

"[1,2,3]".tokenize(',[]')*.toInteger()

答案 1 :(得分:4)

你可以这样使用Eval.me

String[] f = Eval.me( d )*.toString()

或者

int[] i = Eval.me( d )

但要小心,好像这个字符串是由第三方输入的,它可能会造成令人讨厌的事情,并且存在巨大的安全风险......为了解决这个问题,你需要自己用以下方法解析它: / p>

def simplisticParse( String input, Class requiredType ) {
  input.dropWhile { it != '[' }
       .drop( 1 )
       .takeWhile { it != ']' }
       .split( ',' )*.asType( requiredType )
}

String[] s = simplisticParse( d, String )
int[] i = simplisticParse( d, Integer )