根据多个包含过滤一个List

Gov*_*ngh 5 collections scala list filter scala-collections

我想过滤一个List,我只想保留一个字符串,如果字符串包含.jpg,.jpeg.png:

scala>  var list = List[String]("a1.png","a2.amr","a3.png","a4.jpg","a5.jpeg","a6.mp4","a7.amr","a9.mov","a10.wmv")
list: List[String] = List(a1.png, a2.amr, a3.png, a4.jpg, a5.jpeg, a6.mp4, a7.amr, a9.mov, a10.wmv)
Run Code Online (Sandbox Code Playgroud)

我发现这.contains对我没有帮助!

所需输出:

List("a1.png","a3.png","a4.jpg","a5.jpeg")
Run Code Online (Sandbox Code Playgroud)

Ser*_*tin 15

使用filter方法.

list.filter( name => name.contains(pattern1) || name.contains(pattern2) )
Run Code Online (Sandbox Code Playgroud)

如果您有未定义的扩展量:

val extensions = List("jpg", "png")
list.filter( p => extensions.exists(e => p.matches(s".*\\.$e$$")))
Run Code Online (Sandbox Code Playgroud)