2009-09-11 9 views
2

Je dois séparer une chaîne sans séparateur. Voici le code ..Comment séparer une chaîne sans séparateur?

myarray = [mystring componentsSeparatedByString:@","]; 

Ici, j'utilise le séparateur « » à Éclate une chaîne, mais je veux partager sans utiliser un séparateur

NSString *mystring [email protected]"123456"; 

J'ai cette valeur, maintenant je veux insérer cette valeur dans un tableau comme celui-ci:

array[0]=1; 
array[1]=2; 

............ etc ..

+1

Votre chaîne est déjà un tableau de caractères, il suffit donc de faire défiler chaque caractère et de l'ajouter à un autre tableau si nécessaire. –

+0

... Je suppose. Je ne sais rien de l'objectif-C –

+1

Corriger Ed, c'est un tableau d'unichars, qui ne sont pas des caractères. getCharacters: range: va remplir un tampon pour vous. –

Répondre

3

Ce genre de question est un peu délicat quand on considère l'internationalisation. Par exemple, si vous allez sur la route "algorithme bête" et que vous prenez simplement les caractères, tout caractère multi-octet sera foiré. Ceci est probablement le plus proche algorithme simple, vous aurez à manipuler les différentes langues bien:

- (NSArray *)arrayOfCharacters { 
    int startIndex = 0; 
    NSMutableArray *resultStrings = [NSMutableArray array]; 
    while (startIndex < [self length]) { 
     NSRange characterRange = [self rangeOfComposedCharacterSequenceAtIndex:startIndex]; 
     [resultStrings addObject:[self substringWithRange:characterRange]]; 
     startIndex += characterRange.length; 
    } 
    return [[resultStrings copy] autorelease]; 
} 

Même c'est loin d'être parfait, mais - pas toutes les langues comptent nécessairement des personnages de la même façon que nous le faisons.