string - palabra - obtener los dos ultimos caracteres de una cadena javascript
Verificando si los valores en List son parte de String (2)
¿Algo como esto?
keys.exists(a.contains(_))
O incluso más idiomáticamente
keys.exists(a.contains)
Tengo una cadena como esta:
val a = "some random test message"
Tengo una lista como esta:
val keys = List("hi","random","test")
Ahora, quiero verificar si la cadena a
contiene algún valor de las keys
. ¿Cómo podemos hacer esto usando las funciones integradas de la biblioteca de Scala?
(Conozco la manera de dividir a
Lista y hacer una verificación con la lista de keys
y luego encontrar la solución. Pero estoy buscando una manera de resolverlo de forma más simple usando funciones de biblioteca estándar.)
El caso simple es probar la contención de subcadenas (como se rarry
en la respuesta de rarry
), por ej.
keys.exists(a.contains(_))
No dijiste si realmente deseas encontrar coincidencias de palabras completas en su lugar. Como la respuesta de rarry
asumió que no, esta es una alternativa que se supone que tienes.
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 _)
Tenga en cuenta que la lista de claves solo es eficiente para listas pequeñas. Con una lista, el método contains
normalmente escanea la lista completa linealmente hasta que encuentra una coincidencia o llega al final.
Para números más grandes de elementos, un conjunto no solo es preferible, sino que también es una representación más verdadera de la información. Los conjuntos normalmente se optimizan a través de códigos hash, etc., y por lo tanto necesitan menos búsqueda lineal, o ninguno.