72 votes

Fractionner NSString plusieurs fois sur le même séparateur

Je reçois actuellement une chaîne comme ceci:

 @"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54"
 

Et je le divise comme ceci:

 testArray = [[NSArray alloc] init];
NSString *testString = [[NSString alloc] initWithFormat:@"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54,Steve|56,Matty|24,Bill|30,Rob|30,Jason|33,Mark|22,Stuart|54,Kevin|30"];
testArray = [testString componentsSeparatedByString:@","];

dict = [NSMutableDictionary dictionary];
for (NSString *s in testArray) {

    testArray2 = [s componentsSeparatedByString:@"|"];
    [dict setObject:[testArray2 objectAtIndex:1] forKey:[testArray2 objectAtIndex:0]];
}
 

Je vais maintenant recevoir une chaîne comme ceci:

 @"Sam|26|Developer,Hannah|22|Team Leader,Adam|30|Director,Carlie|32|PA,Jan|54|Cleaner"
 

Puis-je (et comment) utiliser la même méthode que ci-dessus pour séparer la chaîne plusieurs fois en utilisant le "|" séparateur?

167voto

Simon Lee Points 15481

La ligne suivante ...

 testArray2 = [s componentsSeparatedByString:@"|"];
 

Le tableau contiendra maintenant 3 éléments au lieu de 2 ..... plus besoin de se séparer!

5voto

Tendulkar Points 4299

fait comme ça.

 NSString *testString = [[NSString alloc] initWithFormat:@"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54,Steve|56,Matty|24,Bill|30,Rob|30,Jason|33,Mark|22,Stuart|54,Kevin|30"];
    NSArray *testArray = [testString componentsSeparatedByString:@","];
    NSLog(@"%@",testArray);
    for(int i=0;i<[testArray count];i++){
        NSString *str=[testArray objectAtIndex:i];
    NSArray *aa=[str componentsSeparatedByString:@"|"];
    NSLog(@"%@",aa);
    }
 

Pas besoin de conserver le tableau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X