我有一个字符串:String str = "[aa,bb,cc,dd]"
。我想将其转换为像[aa, bb, cc, dd]
这样的groovy列表。任何可用于此类型转换的groovy方法?
答案 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()