逗号分隔列表同时删除项目

时间:2015-12-02 08:00:57

标签: groovy

在Python中,我可以将列表折叠成一个字符串:

",".join([line for line in text if line != 'tests'])

我认为这是创建CSV行的一种非常优雅的方式。

现在我想在Groovy中做同样的事情,以便在Jenkins DSL脚本中使用。到目前为止,我所能达到的最好成绩是:

def dirlist = "git ls-tree -d --name-only ${branchName}".execute(null, workingDir)
dirlist.waitFor()

String packages = ''
dirlist.text.eachLine { line ->
    if (line != 'tests' && line.length() != 0) {
        packages += line + ','
    }
}
packages = packages.getAt(0..(packages.length() - 2))

这有效,但看起来并不优雅,我必须手动删除最后一个逗号。

是否有更清晰的写作方式?

1 个答案:

答案 0 :(得分:2)

你可以选择:

dirlist.text.readLines().findAll { line ->
    line != 'tests' && line.length() != 0
}.join(',')