Checking if values in List is part of String

Something like this?

keys.exists(a.contains(_)) 

Or even more idiomatically

keys.exists(a.contains)

The simple case is to test substring containment (as remarked in rarry's answer), e.g.

keys.exists(a.contains(_)) 

You didn't say whether you actually want to find whole word matches instead. Since rarry's answer assumed you didn't, here's an alternative that assumes you do.

val a = "some random test message"
val words = a.split(" ")
val keys = Set("hi","random","test") // could be a List (see below)
words.exists(keys contains _)

Bear in mind that the list of keys is only efficient for small lists. With a list, the contains method typically scans the entire list linearly until it finds a match or reaches the end.

For larger numbers of items, a set is not only preferable, but also is a more true representation of the information. Sets are typically optimised via hashcodes etc and therefore need less linear searching - or none at all.