2013-06-20 3 views
3

나는 내가 문자열의 배열로 변환하는 방법 변환 문자열 표현

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

아래와 같이 INT의 배열의 repsentation 인 문자열을 제공하고 있다면?

String[] f = convert d to array of String

또한 나는 INT의 배열로 변환하는 방법?

int[] f = convert d to array of int 

답변

4

당신과 같이 Eval.me를 사용할 수 있습니다,이 String이 제 3 자에 의해 입력되면, 그것은 불쾌한 일을 할 수 있기

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) 
+0

또한 질문의 제목에 _ "그루비 목록"_ 말하지만, 사람들은 [변경'문자열 []'또는'INT 배열 있음을 주목해야한다 ]'를'List'로 바꾸면 대신에 List 객체를 가질 수 있습니다 :-) –

7

내 값에 점이 포함 된 문자열과 found this이 있었기 때문에 다른 해결책을 찾고있었습니다.

이 코드는 당신을 위해 일해야합니다

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