Divisão Objective-C ()?

110

Existe alguma maneira de dividir strings em c objetivo em matrizes? Quero dizer assim - string de entrada Sim: 0: 42: valor em uma matriz de (Sim, 0,42, valor)?

Christian Stewart
fonte

Respostas:

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

onde sua String contém @"one:two:three"

e arrayOfComponents conterá @[@"one", @"two", @"three"]

e você pode acessar cada um com NSString *comp1 = arrayOfComponents[0];

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

mipadi
fonte
29
Observe que o inverso é [NSArray componentsJoinedByString:].
devios1
Eu tenho um problema se eu fizer @ "Olá, mundo". Ele retornará um array de 3 objetos, dos quais o último contém @ "". Eu poderia fazer um loop pela matriz e excluí-la, mas existe uma maneira melhor?
Au Ris de
1
@AuRis tente primeiro cortar os espaços em branco da string: [stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
theDuncs
95

Experimente isto:

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

Use isto: [[string componentsSeparatedByString: @ ","] [0];

Josep Escobar
fonte
6
Ainda me pergunto por que as pessoas respondem a perguntas que têm IDADE ANTES e têm respostas estabelecidas ... Sem falar que a sua apenas seleciona o primeiro elemento que não faz sentido.
Christian Stewart
0

se você quiser acessar a primeira palavra:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
UMUT
fonte