11

嘿,我尝试在 groovy 中修剪列表的每个字符串项

list.each() { it = it.trim(); }

但这仅适用于闭包,列表中的字符串仍然是“foo”、“bar”和“groovy”。

我怎样才能做到这一点?

4

5 回答 5

23
list = list.collect { it.trim() }
于 2009-09-22T09:15:47.530 回答
6

您还可以使用扩展运算符:

def list = [" foo", "bar ", " groovy "]
list = list*.trim()
assert "foo" == list[0]
assert "bar" == list[1]
assert "groovy" == list[2]
于 2009-09-22T19:16:53.363 回答
2

根据Groovy Quick Start, usingcollect将收集从闭包返回的值。

下面是一个使用 Groovy Shell 的小例子:

groovy:000> ["a    ", "  b"].collect { it.trim() }
===> [a, b]
于 2009-09-22T09:19:08.003 回答
1

如果你真的需要修改列表,你可以使用 list.eachWithIndex { item, idx -> list[idx] = item.trim() }。

collect() 更好。

于 2009-09-23T04:15:13.750 回答
0

@sepp2k 我认为这适用于红宝石

这适用于 groovy list = list.collect() { it.trim(); }

于 2009-09-22T09:28:00.857 回答