Фильтрация последовательности строк 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>