Objective-C Split ()?

110

Czy istnieje sposób na podzielenie ciągów w celu c na tablice? Mam na myśli tak - ciąg wejściowy Tak: 0: 42: wartość w tablicy (tak, 0,42, wartość)?

Christian Stewart
źródło

Odpowiedzi:

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

gdzie yourString zawiera @"one:two:three"

i arrayOfComponents będą zawierać @[@"one", @"two", @"three"]

i możesz uzyskać dostęp do każdego za pomocą NSString *comp1 = arrayOfComponents[0];

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

mipadi
źródło
29
Zwróć uwagę na odwrotność [NSArray componentsJoinedByString:].
devios1
Mam problem, jeśli zrobię @ „Hello world”. Zwróci tablicę 3 obiektów, z których ostatni zawiera @ "". Mógłbym przejrzeć tablicę i ją usunąć, ale czy jest lepszy sposób?
Au Ris
1
@AuRis spróbuj najpierw przyciąć białe znaki z ciągu: [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
Duncs
95

Spróbuj tego:

    NSString *testString= @"It's a rainy day";
    NSArray *array = [testString componentsSeparatedByString:@" "];
Prabh
źródło
4

Użyj tego: [[string componentsSeparatedByString: @ ","] [0];

Josep Escobar
źródło
6
Wciąż zastanawiam się, dlaczego ludzie odpowiadają na pytania, które są WIEKU i mają ustalone odpowiedzi ... Nie wspominając o twoim, po prostu wybiera pierwszy element, który nie ma sensu.
Christian Stewart
0

jeśli chcesz uzyskać dostęp do pierwszego słowa:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
UMUT
źródło