单独的字符串并包括在其中一个返回的组件中分隔字符

时间:2010-01-15 01:40:56

标签: objective-c string

假设我有以下字符串"Center-World",我想在两个不同的字符串中分隔此字符串,但我希望短划线成为"Center"的一部分。通过下面的代码,我得到了一个包含["Center","World"]的字符串,我想要一些返回["Center-","World"]的内容。

这是我的代码:

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

有什么建议吗?

提前感谢。

1 个答案:

答案 0 :(得分:0)

我最近需要这样的东西。我想将选择器字符串(例如: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;
}

您需要从搜索@":"更改为@"-",但之后应该会按照您的预期进行操作。