Фильтрация последовательности строк scala на основе списка строк

У меня есть последовательность Scala, которая имеет формат ("Apple-fruit", "Banana-fruittoo", "Chocolate-notafruit") и у меня есть еще один список формата Scala ("Apple", "Banana")

Я хочу отфильтровать мою первую последовательность на основе второго списка, чтобы мой окончательный результат был ("Apple-fruit", "Banana-fruittoo"), Может ли кто-нибудь помочь мне с этой функцией фильтра?

2 ответа

Seq("Apple-fruit", "Banana-fruittoo", "Chocolate-notafruit").filter(
  x => Seq("Apple", "Banana").exists(y => x.contains(y))
)

val seqToFilter = Seq("Apple-fruit", "Banana-fruittoo", "Chocolate-notafruit")
val filteringSeq = Seq("Apple", "Banana")

seqToFilter.filter(x => filteringSeq.exists(y => x.contains(y)))

Для каждого элемента (x) последовательности для фильтрации мы проверяем, существует ли хотя бы один элемент (y) из последовательности фильтрации, такой как x содержит y.

Попробуй это:

x.filter(x=>y.contains(x.split("-")(0)))

за

val x = List("Apple-fruit", "Banana-fruittoo", "Chocolate-notafruit")
val y = List("Apple", "Banana")

В Scala REPL:

scala> x.filter(x=>y.contains(x.split("-")(0)))
res130: List[String] = List(Apple-fruit, Banana-fruittoo)

scala>
Другие вопросы по тегам