¿Cómo puedo detectar si una cadena contiene una palabra determinada? Por ejemplo, tengo una cadena debajo que dice:
@"Here is my string."
Me gustaría saber si puedo detectar una palabra en la cadena, como "es", por ejemplo.
objective-c
string
nsstring
Alex
fuente
fuente
rangeOfString
.Respuestas:
Así es como lo haría:
Puede agregar esto fácilmente como categoría en
NSString
:fuente
containsString
expuesto en NSString.Use el siguiente código para escanear la palabra en la oración.
fuente
En iOS8 ahora puede usar:
Aquí hay una publicación interesante sobre cómo "adaptarla" a iOS7: http://petersteinberger.com/blog/2014/retrofitting-containsstring-on-ios-7/
fuente
Recomiendo usar NSLinguisticTagger . Podemos usarlo para buscar
Here is my string. His isn't a mississippi isthmus. It is?
Esto produce:
Ignora
His
mississippi
eisthmus
incluso se identificais
dentro deisn't
.fuente
Espero que esto te ayude ... agrega esta línea en el archivo .m o crea una clase separada e integra este código.
fuente
Con iOS 8 y Swift, podemos usar el método localizadoCaseInsensitiveContainsString
fuente
Una solución completa primero buscaría la cadena (sin espacios en blanco añadidos), luego comprobaría si el carácter inmediatamente anterior está en blanco o al comienzo de la línea. Del mismo modo, compruebe si el siguiente carácter está en blanco o al final de la línea. Si ambas pruebas pasan, entonces tienes una coincidencia. Dependiendo de sus necesidades, también se puede comprobar
,
,.
,()
, etc.Un enfoque alternativo, por supuesto, es analizar la cadena en palabras y verificar cada palabra individualmente.
fuente