Objective-C Split ()?

110

Gibt es eine Möglichkeit, Zeichenfolgen in Ziel c in Arrays aufzuteilen? Ich meine so - Eingabezeichenfolge Ja: 0: 42: Wert in ein Array von (Ja, 0,42, Wert)?

Christian Stewart
quelle

Antworten:

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

wo yourString enthält @"one:two:three"

und arrayOfComponents enthalten @[@"one", @"two", @"three"]

und Sie können jeweils mit zugreifen NSString *comp1 = arrayOfComponents[0];

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

Mipadi
quelle
29
Beachten Sie, dass die Umkehrung ist [NSArray componentsJoinedByString:].
Devios1
Ich habe ein Problem, wenn ich @ "Hallo Welt" mache. Es wird ein Array von 3 Objekten zurückgegeben, von denen das letzte @ "" enthält. Ich könnte das Array durchlaufen und es löschen, aber gibt es einen besseren Weg?
Au Ris
1
@AuRis versuchen zuerst, das Leerzeichen von der Zeichenfolge zu entfernen: [Zeichenfolge stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
TheDuncs
95

Versuche dies:

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

Verwenden Sie Folgendes: [[string componentsSeparatedByString: @ ","] [0];

Josep Escobar
quelle
6
Ich frage mich immer noch, warum Leute Fragen beantworten, die ALTER alt sind und Antworten gefunden haben ... Ganz zu schweigen davon, dass Sie nur das erste Element auswählen, das keinen Sinn ergibt.
Christian Stewart
0

Wenn Sie auf das erste Wort zugreifen möchten:

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