Objective-C Split ()?

110

Есть ли способ разбить строки в объекте c на массивы? Я имею в виду вот так - строка ввода Да: 0: 42: значение в массив (Да, 0,42, значение)?

Кристиан Стюарт
источник

Ответы:

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

где yourString содержит @"one:two:three"

и arrayOfComponents будет содержать @[@"one", @"two", @"three"]

и вы можете получить доступ к каждому с помощью NSString *comp1 = arrayOfComponents[0];

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

мипади
источник
29
Обратите внимание на обратное [NSArray componentsJoinedByString:].
devios1
У меня проблема, если я сделаю @ "Hello world". Он вернет массив из 3 объектов, последний из которых содержит @ "". Я мог бы перебрать массив и удалить его, но есть ли способ лучше?
Au Ris
1
@AuR, попробуйте сначала удалить пробелы из строки: [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
theDuncs
95

Попробуй это:

    NSString *testString= @"It's a rainy day";
    NSArray *array = [testString componentsSeparatedByString:@" "];
Prabh
источник
4

Используйте это: [[string componentsSeparatedByString: @ ","] [0];

Хосеп Эскобар
источник
6
Я все еще удивляюсь, почему люди отвечают на вопросы, которые устарели и имеют устоявшиеся ответы ... Не говоря уже о том, что ваш просто выбирает первый элемент, который не имеет смысла.
Кристиан Стюарт
0

если вы хотите получить доступ к первому слову:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
УМУТ
источник