关于split:使用字符串groovy数组的Findall

Findall with array of string groovy

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

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

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

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

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

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


split方法返回数组。
如果需要列表,请使用标记化

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

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


Parens会工作(请参阅问题注释)。 所以您的解决方案已经接近:

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

因为大多数Groovy函数的arity为零,这将使用身份闭包调用该函数。 由于空字符串被认为是错误的,因此将其过滤掉。


您可以执行以下操作:

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

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