根据多个包含过滤List [英] filter a List according to multiple contains

查看:218
本文介绍了根据多个包含过滤List的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想过滤一个 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)

我没有发现 .contains 将帮助我!



需要的输出

  List(a1.png,a3.png,a4.jpg,a5.jpeg)

$

解决方案使用过滤 pre> list.filter(name => name.contains(pattern1)|| name.contains(pattern2))

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

  val extensions = List jpg,png)
list.filter(p => extensions.exists(e => p.matches(s。* \\。$ e $$)))


I want to filter a List, only wants if string contains .jpg,.jpeg or .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)

i am not finding that .contains will help me!

required output

List("a1.png","a3.png","a4.jpg","a5.jpeg")

解决方案

Use filter method.

list.filter( name => name.contains(pattern1) || name.contains(pattern2) )

If you have undefined amount of extentions:

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

这篇关于根据多个包含过滤List的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆