如何在保留分隔符的同时拆分NSString

时间:2015-08-11 10:02:18

标签: ios objective-c nsstring separator

我使用以下内容将字符串分隔为",":

NSString * receivedString = @"component1,component3,,component6";
NSArray * arrayOfSubstrings = [receivedString componentsSeparatedByString:@","];

但是我想保留","作为单独的组件,获取以下数组:

[0] "component1"
[1] ","
[2] "component2"
[4] ","
[5] ","
[6] "component6"

相反而不是:

[0] "component1"
[1] "component2"
[2] "component6"

基本上,","是我想要分析的一个元素。

如果没有重新发明轮子,我怎么能这样做呢?

1 个答案:

答案 0 :(得分:4)

(未测试的)

+ (NSArray *)splitString:(NSString *)string
           withSeparator:(NSString *)separator
{
    NSArray *elements = [string componentsSeparatedByString:separator];
    NSMutableArray *arr = [NSMutableArray new];
    for (NSUInteger i = 0; i < [elements counts]; i++) {
        NSString *element = elements[i];
        if ([element length] > 0)
            [arr addObject:element];
        if (i != [elements count] - 1)
            [arr addObject:separator];
    }
    return arr;
}