2009-12-02 6 views
1

J'ai un NSString avec lequel je travaille, mais je voudrais l'analyser par longueur de caractère. Donc, divisez-le en un NSArray, et que chaque objet du tableau soit x caractères de cette chaîne. Donc, fondamentalement, briser la chaîne en sous-chaînes d'une certaine longueurCocoa: Analyser NSString par longueur de caractère

Alors, comment puis-je le faire?

exemple:

NSString * string = @ "Voici ma chaîne"

objets NSArray:

"Son"

"ei"

"sm"

"ys"

"tri"

"ng"

+0

Quelle est la question? –

+0

Comment puis-je le faire. –

+1

Je pense que vous devez décrire mieux ce que vous essayez de faire. Vous voulez diviser la chaîne en sous-chaînes d'une certaine longueur? –

Répondre

5

ce travail peut? Non testé si

@interface NSString (MyStringExtensions) 
- (NSArray*)splitIntoPartsWithLength:(NSUInteger)length; 
@end 

@implementation NSString (MyStringExtensions) 
- (NSArray*)splitIntoPartsWithLength:(NSUInteger)length 
{ 
    NSRange range = NSMakeRange(0, length); 
    NSMutableArray *array = [NSMutableArray array]; 
    NSUInteger count = [self length]; 

    while (length > 0) { 
     if (range.location+length >= count) { 
      [array addObject:[self substringFromIndex:range.location]]; 
      return [NSArray arrayWithArray:array]; 
     } 
     [array addObject:[self substringWithRange:range]]; 
     range.location = range.location + length; 
    } 
    return nil; 
} 
@end 

EDIT - mis en œuvre en tant que l'utilisation de la catégorie comme

NSString *myString = @"Wish you a merry x-mas"; 
NSArray *array = [myString splitIntoPartsWithLength:10]; 
+0

donc cela me permettra d'analyser la chaîne en morceaux x caractères de long? Qu'est-ce que je fais, il suffit de modifier la longueur int à la longueur que je veux? –

+0

C'est une méthode, vous devez donc spécifier la longueur lors de l'envoi de ce message 'splitString: intoPartLengths:'. –

+0

epatel: Vous ne diminuez jamais la valeur de 'length', de sorte que la boucle' while' sera bouclée pour toujours. –

Questions connexes