Разделяйте строки и включайте разделительный символ в один из возвращаемых компонентов - PullRequest
0 голосов
/ 15 января 2010

Скажем, у меня есть следующая строка "Center-World", и я хочу разделить эту строку на две разные строки, но я хочу, чтобы тире была частью "Center". С кодом ниже я получил строку с ["Center","World"], и я хочу что-то, что возвращает ["Center-","World"].

Вот мой код:

NSCharacterSet *stringDelimiters = [NSCharacterSet characterSetWithCharactersInString:@" :-"]; 
NSArray *cellContentWords = [cell.text componentsSeparatedByCharactersInSet:stringDelimiters];

Есть предложения?

спасибо заранее.

1 Ответ

0 голосов
/ 15 января 2010

Мне недавно понадобилось что-то подобное. Я хотел разбить строку селектора (например: initWithFoo:bar:baz:) на различные компоненты: (например: initWithFoo:, bar: и baz:). Вы, как и я, обнаружили, что componentsSeparatedByString: не совсем так. Поэтому я создал категорию NSString, чтобы сделать то, что искал:

- (NSArray *) selectorComponents {
    NSMutableArray * components = [NSMutableArray array];
    NSMutableString * scratchString = [self mutableCopy];
    while ([scratchString rangeOfString:@":"].location != NSNotFound) {
        NSRange componentRange = NSMakeRange(0, [scratchString rangeOfString:@":"].location+1);
        NSString * component = [scratchString substringWithRange:componentRange];
        [components addObject:component];
        [scratchString replaceCharactersInRange:componentRange withString:@""];
    }
    [scratchString release];
    return components;
}

Вы захотите перейти с поиска @":" на @"-", но после этого он должен работать так, как вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...