Objective-C Split ()?


110

Existe-t-il un moyen de diviser les chaînes de l'objectif c en tableaux? Je veux dire comme ça - chaîne d'entrée Oui: 0: 42: valeur dans un tableau de (Oui, 0,42, valeur)?

Réponses:


199
NSArray *arrayOfComponents = [yourString componentsSeparatedByString:@":"];

où yourString contient @"one:two:three"

et arrayOfComponents contiendra @[@"one", @"two", @"three"]

et vous pouvez accéder à chacun avec NSString *comp1 = arrayOfComponents[0];

( https://developer.apple.com/documentation/foundation/nsstring/1413214-componentsseparatedbystring )


29
Notez que l'inverse est [NSArray componentsJoinedByString:].
devios1

J'ai un problème si je fais @ "Hello world". Il renverra un tableau de 3 objets, dont le dernier contient @ "". Je pourrais parcourir le tableau et le supprimer, mais y a-t-il un meilleur moyen?
Au Ris

1
@AuRis essayez d'abord de couper l'espace blanc de la chaîne: [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
theDuncs

95

Essaye ça:

    NSString *testString= @"It's a rainy day";
    NSArray *array = [testString componentsSeparatedByString:@" "];


4

Utilisez ceci: [[string componentsSeparatedByString: @ ","] [0];


6
Je me demande toujours pourquoi les gens répondent à des questions qui datent de l'âge et ont des réponses établies ... Sans parler de la vôtre, il suffit de sélectionner le premier élément qui n'a aucun sens.
Christian Stewart

0

si vous voulez accéder au premier mot:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.