Cacao Exploser ou diviser une NSString en mots individuels

Découper une chaîne de texte en mots composant est une condition indispensable pour effectuer des recherches dans du texte et d'autres traitements de texte. Cette tâche est facile dans Cocoa / Objective-C, bien qu’elle nécessite une exploration de quelques références de classe dans la documentation. Si vous avez besoin d'un développement plus complexe d'une chaîne, au moins ce code vous donnera un point de départ.


Pour diviser la chaîne NSString bigString en un NSArray contenant les mots individuels séparés par des espaces, utilisez:

NSString * bigString = @ "pas vraiment grand";
NSArray * words = [composants bigStringSeparatedByCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];

Le cœur de cette opération est la méthode componentsSeparatedByCharactersInSet de NSString. Il divise bigString dans un tableau de NSStrings. Les limites de mots sont définies par l'objet NSCharacterSet généré par la méthode de classe whitespaceCharacterSet, qui fournit des espaces et des caractères de tabulation. Les divers caractères de nouvelle ligne unicode peuvent être ajoutés à ces espaces en appelant la méthode whitespaceAndNewlineCharacterSet dans l'exemple ci-dessus.

Bien sûr, les mots peuvent être séparés par plus que des espaces et des nouvelles lignes. Les caractères de ponctuation peuvent être référencés à l'aide de la méthode punctuationCharacterSet vers NSCharacterSet. Pour effectuer une détonation appropriée du texte grammatical en mots constitutifs séparés par des espaces, des nouvelles lignes et des signes de ponctuation, vous devez créer un jeu de caractères constituant l'union de ces trois jeux:

NSMutableCharacterSet * separators = [NSMutableCharacterSet ponctuationCharacterSet];
[séparateurs formUnionWithCharacterSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSArray * words = [composants bigStringSeparatedByCharactersInSet: séparateurs];