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)?

Christian Stewart
la source

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 )

mipadi
la source
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:@" "];
Prabh
la source
4

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

Josep Escobar
la source
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];
UMUT
la source