сделать массив из строки с переменным количеством пробелов в Objective-C - PullRequest
0 голосов
/ 07 июля 2010

Это код, который я бы использовал, если бы между словами всегда были одинарные пробелы. Поскольку у меня есть несколько пробелов между словами, как мой код можно изменить, чтобы удалить лишние пробелы при использовании componentSeparatedBySring. Я новичок в Objective-C, поэтому любая помощь будет принята с благодарностью!

Вот мой код: NSString * myString = @ "Один Два Три Четыре Пять"; NSArray * myArray = [myString componentsSeparatedByString: @ ""];

Ответы [ 2 ]

3 голосов
/ 07 июля 2010

Используйте NSScanner вместо:

NSMutableArray *results = [NSMutableArray array];
NSScanner      *scanner = [NSScanner scannerWithString:input];
NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@" "];

while ([scanner isAtEnd] == NO) 
{
    NSString *string;
    [scanner scanUpToCharactersFromSet:charSet intoString:&string];
    [results addObject:string];
}
0 голосов
/ 18 августа 2014
+ (NSArray *)componentsInString:(NSString *)string withSeparacterInString:(NSString *)separaterStr
{
  if (!string || !separaterStr || [separaterStr length] < 1)
    return [NSArray array];

  NSMutableArray *arr = [[string componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:separaterStr]] mutableCopy];

  [arr removeObject:@""]; // removes all empty components

  return arr;
}

NSArray *arr = [Utils componentsInString:@"12 123 \n 14 " withSeparacterInString:@" \n"];
...