Подтвердить что ты не робот

Как отделить строку по пространству с помощью Objective-C?

Предположим, что у меня есть такая строка:

hello world       this may     have lots   of sp:ace or little      space

Я хотел бы выделить эту строку следующим образом:

@"hello", @"world", @"this", @"may", @"have", @"lots", @"of", @"sp:ace", @"or", @"little", @"space"

Спасибо.

4b9b3361

Ответ 1

NSString *aString = @"hello world       this may     have lots   of sp:ace or little      space";
NSArray *array = [aString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
array = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != ''"]];

Ответ 2

Я бы предложил двухэтапный aproach:

NSArray *wordsAndEmptyStrings = [yourLongString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSArray *words = [wordsAndEmptyStrings filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"length > 0"]];

Ответ 3

Это сработало для меня

NSString * str = @"Hi Hello How Are You ?";
NSArray * arr = [str componentsSeparatedByString:@" "];
NSLog(@"Array values are : %@",arr);

Ответ 4

Очень легко сделать это с помощью блоков, попробуйте что-то вроде этого:

NSString* s = @"hello world       this may     have lots   of space or little      space";
NSMutableArray* ar = [NSMutableArray array];
[s enumerateSubstringsInRange:NSMakeRange(0, [s length]) options:NSStringEnumerationByWords usingBlock:^(NSString* word, NSRange wordRange, NSRange enclosingRange, BOOL* stop){
    [ar addObject:word];
}];

Ответ 5

NSString * mainString = @"Today is your day";
NSArray * array = [mainString componentsSeparatedByString:@" "];
NSLog(@"Expected string is : %@",array);

Ответ 6

Мне нужно было разбить NSString вверх, по существу, запись (строка) в соответствующие компоненты поля. Каждое поле было разделено с использованием символа TAB.

Я нашел, что это сработало для меня.

NSString *string = @"Imagine this is a string with tabs in it.";
NSArray *array = [string componentsSeparatedByCharactersInSet:
                      [NSCharacterSet characterSetWithCharactersInString:@"\t"]];
NSLog(@"%@", array);

Очевидно, что вкладка не является пробелом. Но приведенное выше может быть полезно для тех, кто хочет разбить строку на определенный символ.

Надеюсь, что это поможет кому-то.