Objective-C Split ()?


110

Esiste un modo per dividere le stringhe nell'obiettivo c in array? Voglio dire in questo modo: stringa di input Sì: 0: 42: valore in un array di (Sì, 0,42, valore)?

Risposte:


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

dove contiene yourString @"one:two:three"

e arrayOfComponents conterrà @[@"one", @"two", @"three"]

e puoi accedere a ciascuno con NSString *comp1 = arrayOfComponents[0];

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


29
Nota che l'inverso è [NSArray componentsJoinedByString:].
devios1

Ho un problema se faccio @ "Hello world". Restituirà un array di 3 oggetti, di cui l'ultimo contiene @ "". Potrei scorrere l'array ed eliminarlo, ma c'è un modo migliore?
Au Ris

1
@AuRis prova prima a ritagliare gli spazi dalla stringa: [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
theDuncs

95

Prova questo:

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


4

Usa questo: [[string componentsSeparatedByString: @ ","] [0];


6
Mi chiedo ancora perché le persone rispondano a domande che sono ETÀ e hanno risposte stabilite ... Per non parlare del tuo seleziona solo il primo elemento che non ha senso.
Christian Stewart

0

se vuoi accedere alla prima parola:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.