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

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 )


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:@" "];


4

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


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];
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.