NSString删除重复的子串

时间:2013-08-22 10:39:53

标签: ios sorting nsstring nsscanner

如何从字符串中删除重复的子句?对于前者我有: aaa,bbb,ttt,bbb,rrr 。 结果我想要 aaa,bbb,ttt,rrr (删除重复的 bbb )。我希望得到你的帮助。感谢。

3 个答案:

答案 0 :(得分:3)

你可以这样做:

NSMutableSet *seen = [NSMutableSet set];
NSMutableString *buf = [NSMutableString string];
for (NSString *s in [str componentsSeparatedByString:@","]) {
    if (![seen containsObject:s]) {
         [seen add:s];
         [buf appendFormat:@",%@", s];
    }
}
NSString *res = [buf length] ? [buf substringFromIndex:1] : @"";

答案 1 :(得分:0)

分三步完成

1)NSArray *items = [theString componentsSeparatedByString:@","];

2)从数组中删除重复元素

    NSArray* array =  [NSArray arrayWithObjects:@"test1", @"test2", @"test1", @"test2",@"test4",   nil];

    NSArray* filteredArray = [[NSArray alloc] init];
    NSSet *set= [NSOrderedSet orderedSetWithArray:array];
    filteredArray = [set allObjects];

3)从数组中读取字符串

NSString *myString = [myArray componentsJoinedByString:@","];

答案 2 :(得分:0)

您可以使用NSMutableDictionary; 字典中有两个元素; 1.关键 2.价值

只需将Keys设置为数组元素; 特别要点是'Key'不能重复;

现在只需使用[dictionary allKeys];

获取键数组

现在,在此阶段,您在新数组中拥有唯一值;