Findall与字符串groovy数组

时间:2017-12-22 05:04:35

标签: groovy split findall

我有一个字符串/sample/data。当我使用split分割时,我得到以下结果,

["","sample","data"]

我想忽略空字符串。所以我尝试了以下代码,

"/sample/data".split('/').findAll(it != "")

它给我一个错误“cannot call String[] findAll with argument bool”。

如何拆分并获取没有空字符串的List?

3 个答案:

答案 0 :(得分:3)

拆分方法返回数组。 如果您需要列表,请使用 tokenize

"/sample/data".tokenize('/')

在这种情况下,您也不需要使用findAll。

答案 1 :(得分:1)

您可以执行以下操作:

println "/sample/data".split('/').findAll {it}

findAll {it}会获取所有非空值。

答案 2 :(得分:1)

Parens会起作用(见问题评论)。所以你的解决方案已经接近了:

"/a/b".split("/").findAll()

因为大多数Groovy函数都具有零arity,它将使用 identity 闭包调用该函数。由于空字符串被认为是假的,因此会将其过滤掉。