J'essaie de trouver un mot dans une expression (NSString). Pour cela, j'ai explosé les composants de la phrase en sous-chaînes individuelles et maintenant j'essaie de les comparer au mot que je cherche, mais cela ne fonctionne pas.Comparaison de l'élément NSArray à NSString
Quelle serait l'approche correcte pour cela et corriger pour le logiciel ci-dessous?
NSString *myString = @"Mi Programa es genial";
NSArray *explodedDescription = [myString componentsSeparatedByString:@" "];
if ([explodedDescription objectAtIndex:1] == @"Programa") {
NSLog(@"Found");
}
Notez que la division par un caractère espace est une approche assez naïve. Le texte peut être dans une langue qui utilise un séparateur différent, ou peut avoir un caractère de retour à la ligne sans espace. –
Ou peut-être le dernier mot d'une clause (incluant ainsi une virgule, un point-virgule ou une ponctuation terminale comme un point final), ou peut être le premier ou le premier mot, différant ainsi par la capitalisation, ou ne pas être la version racine du mot: il peut s'agir d'un gérondif, d'un comparatif, d'un superlatif, d'un passé, d'un participe passé ou de tout autre dérivé de la racine. –
La seule vraie solution est d'analyser la chaîne en utilisant un analyseur réel qui est conscient des nombreuses formes de ponctuation, et chercher des mots en utilisant une base de données qui peut connecter des racines avec des dérivés (par exemple, rechercher "recherche") et un comparateur qui peut rendre compte des fautes de frappe (par exemple, "sarching" ou "saerching" ou "searthing"). Même alors, préparez-vous pour beaucoup, beaucoup de cas de bord. –