3

如果给我一个字符串,它代表一个 int 数组,如下所示

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

如何转换为字符串数组?

String[] f = convert d to array of String

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

int[] f = convert d to array of int
4

2 回答 2

7

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

此代码应该适合您:

"[1,2,3]".tokenize(',[]')*.toInteger()
于 2014-11-05T12:40:36.660 回答
4

你可以Eval.me这样使用:

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

或者

int[] i = Eval.me( d )

但是要小心,好像这个字符串是由第三方输入的,它可能会做一些讨厌的事情并且是一个巨大的安全风险......为了解决这个问题,你需要自己解析它:

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 )
于 2013-06-20T07:57:11.873 回答