在Groovy中将String转换为arrayList

时间:2016-07-18 12:57:02

标签: grails groovy

我有一个字符串:String str = "[aa,bb,cc,dd]"。我想将其转换为像[aa, bb, cc, dd]这样的groovy列表。任何可用于此类型转换的groovy方法?

4 个答案:

答案 0 :(得分:6)

使用regexp replaceAll

String str = "[aa,bb,cc,dd]"
def a = str.replaceAll(~/^\[|\]$/, '').split(',')
assert a == ['aa', 'bb', 'cc', 'dd']

编辑:

以下版本有点冗长,但处理额外的空格

String str = " [ aa , bb , cc , dd ] "
def a = str.trim().replaceAll(~/^\[|\]$/, '').split(',').collect{ it.trim()}
assert a == ['aa', 'bb', 'cc', 'dd']

答案 1 :(得分:4)

你应该尝试如下: -

String str = "[aa,bb,cc,dd]"
assert str[1..str.length()-2].tokenize(',') == ['aa', 'bb', 'cc', 'dd']

希望它有所帮助.. :)

答案 2 :(得分:2)

你走了:

String str= "['aa', 'bb', 'cc', 'dd']"
assert Eval.me(str) == ['aa', 'bb', 'cc', 'dd']

Eval就是您所需要的。

答案 3 :(得分:0)

另一种方式没有替换所有&记号化:

def s = '[aa,bb,cc,dd]'
def a = []
s.eachMatch( /[\[]?([^\[\],]+)[,\]]?/ ){ a << it[ 1 ] }
assert '[aa, bb, cc, dd]' == a.toString()