Comment puis-je détecter si une chaîne contient un certain mot? Par exemple, j'ai une chaîne ci-dessous qui se lit comme suit:
@"Here is my string."
Je voudrais savoir si je peux détecter un mot dans la chaîne, comme "est" par exemple.
Comment puis-je détecter si une chaîne contient un certain mot? Par exemple, j'ai une chaîne ci-dessous qui se lit comme suit:
@"Here is my string."
Je voudrais savoir si je peux détecter un mot dans la chaîne, comme "est" par exemple.
rangeOfString
.Réponses:
Voici comment je le ferais:
Vous pouvez facilement l'ajouter en tant que catégorie sur
NSString
:la source
containsString
exposée dans NSString.Utilisez le code suivant pour scanner le mot dans la phrase.
la source
Dans iOS8, vous pouvez désormais utiliser:
Il y a un article intéressant sur la façon de le «moderniser» sur iOS7 ici: http://petersteinberger.com/blog/2014/retrofitting-containsstring-on-ios-7/
la source
Je recommande d'utiliser NSLinguisticTagger . Nous pouvons l'utiliser pour rechercher
Here is my string. His isn't a mississippi isthmus. It is?
Cela produit:
Il ignore
His
mississippi
etisthmus
identifie même à l'is
intérieur deisn't
.la source
J'espère que cela vous aidera, .. ajoutez cette ligne au fichier .m ou créez une classe séparée et intégrez ce code.
la source
Avec iOS 8 et Swift, nous pouvons utiliser la méthode localizedCaseInsensitiveContainsString
la source
Une solution complète rechercherait d'abord la chaîne (sans espaces ajoutés), puis vérifierait si le caractère immédiatement précédent est vide ou en début de ligne. De même, vérifiez si le caractère immédiatement suivant est vide ou en fin de ligne. Si les deux tests réussissent, vous avez une correspondance. Selon vos besoins , vous pouvez également vérifier
,
,.
,()
, etc.Une approche alternative, bien sûr, consiste à analyser la chaîne en mots et à vérifier chaque mot individuellement.
la source