嘿,我尝试修剪groovy中列表的每个字符串项
list.each() { it = it.trim(); }
但这仅适用于闭包,在列表中字符串仍然是“foo”,“bar”和“groovy”。
我如何实现这一目标?
答案 0 :(得分:23)
list = list.collect { it.trim() }
答案 1 :(得分:6)
您也可以使用点差运算符:
def list = [" foo", "bar ", " groovy "]
list = list*.trim()
assert "foo" == list[0]
assert "bar" == list[1]
assert "groovy" == list[2]
答案 2 :(得分:2)
根据Groovy Quick Start,使用collect
将收集从闭包返回的值。
以下是使用Groovy Shell的一个小例子:
groovy:000> ["a ", " b"].collect { it.trim() }
===> [a, b]
答案 3 :(得分:1)
如果你真的必须修改列表,你可以使用list.eachWithIndex {item,idx - > list [idx] = item.trim()}。
collect()更好。
答案 4 :(得分:0)
@ sepp2k我认为这适用于ruby
这适用于groovy list = list.collect(){it.trim(); }