在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))
这有效,但看起来并不优雅,我必须手动删除最后一个逗号。
是否有更清晰的写作方式?
答案 0 :(得分:2)
你可以选择:
dirlist.text.readLines().findAll { line ->
line != 'tests' && line.length() != 0
}.join(',')