ねえ、Groovy でリストの各文字列項目をトリミングしようとしています
list.each() { it = it.trim(); }
ただし、これはクロージャー内でのみ機能し、リスト内の文字列はまだ「 foo 」、「 bar 」、および「 groovy 」です。
どうすればそれを達成できますか?
ねえ、Groovy でリストの各文字列項目をトリミングしようとしています
list.each() { it = it.trim(); }
ただし、これはクロージャー内でのみ機能し、リスト内の文字列はまだ「 foo 」、「 bar 」、および「 groovy 」です。
どうすればそれを達成できますか?
list = list.collect { it.trim() }
スプレッド演算子を使用することもできます。
def list = [" foo", "bar ", " groovy "]
list = list*.trim()
assert "foo" == list[0]
assert "bar" == list[1]
assert "groovy" == list[2]
Groovy Quick Startによると、 usingcollect
はクロージャから返された値を収集します。
Groovy Shell を使用した簡単な例を次に示します。
groovy:000> ["a ", " b"].collect { it.trim() }
===> [a, b]
リストを実際に変更する必要がある場合は、list.eachWithIndex { item, idx -> list[idx] = item.trim() } を使用できます。
collect() の方がはるかに優れています。
@ sepp2k Rubyで動作すると思います
これはグルーヴィーな list = list.collect() { it.trim(); で機能します。}