IAm*_*aja 16 string groovy join
我刚尝试过:
List<String> values = getSomehow()
values.join(",")
Run Code Online (Sandbox Code Playgroud)
但是看到join自2.1以来已被弃用.所以我问:我应该如何根据最新的首选/不弃用语法编写?
另外,有没有办法通过闭包实现这一目标?我觉得我可以在collect()这里使用或类似的东西.
Dur*_*dal 20
您可以使用方法的Iterator变体.它的签名是相同的,只需要传递分隔符.joinDefaultGroovyMethods
它看起来像这样:
List<String> values = ["string1", "string2", "string3"]
String joinedValues = values.join(",")
Run Code Online (Sandbox Code Playgroud)
或者您可以在一行中完成所有操作:
String joinedValues = ["string1", "string2", "string3"].join(",")
Run Code Online (Sandbox Code Playgroud)
如果您担心弃用问题,Groovy JDK 的当前版本 ( http://groovy-lang.org/gdk.html )join(String)在、 和 中显示了一个方法Iterable,其中没有一个被弃用。Object[]Iterator
由于所有集合都实现了Iterable,您的原始语法很好。
如果你真的想使用闭包,那么
List strings = ['this', 'is', 'a', 'list']
String result = strings.inject { acc, val ->
"$acc,$val"
}
assert result == 'this,is,a,list'
Run Code Online (Sandbox Code Playgroud)
有效,但肯定不会比strings.join(',').