0
以下のような2つの文字列リストがあり、startsWith
論理に基づいて新しい文字列リストを作成するにはどうしたらいいですか?2つのリストをフィルタリングして新しいリストを作成する方法
pathList = ["/etc/passwd/something.txt",
"/etc/fonts/fonts.conf"
"/var/www/foo.bar",
"/some/foo/path/one.txt"]
notAllowedPathList = ["/etc/fonts",
"/var",
"/path"]
newList = ["/etc/passwd/something.txt", "/some/foo/path/one.txt"]
newList
はnewList
にpathList
startsWith
各要素の各要素かどうかを見ることによって作成されます。彼らはそれぞれ/etc/fonts
と/var
をstartWithため、上記のpathList
、/etc/fonts/fonts.conf
と/var/www/foo.bar
からそう
は、削除されます。
私は以下を思い付いたが、私はこれを行うための、よりグルーヴィーな方法があるだろうと信じて:
def newList = []
pathList.each {String fileName ->
notAllowedPathList.find { String notAllowed ->
if (fileName.startsWith(notAllowed)) {
return true
}
else {
newList << fileName
}
}
}
うわー、私は '知りませんでした' any' 'の前に付加することができます!。あなたはそれが何をしているか説明していただけますか? – Anthony
'any'は、呼び出されたコレクションのいずれかの要素がクロージャ引数に渡されたときに真理値を返す場合にtrueを返します –