删除NSString中的所有重复字符

如何使用标准方法(无需通过源字符串进行手动迭代)执行此操作?删除NSString中的所有重复字符

PS:最后我想获得源字符串的排序字符。我试图使用NSCharacterSet,但无法找到将字符集转换为字符串的方法(无需迭代集合)。

回答:

有这个没有内置的方法,但是它很容易遍历字符串中的字符,并建立无重复一个新的字符串:

NSString *input = @"addbcddaa"; 

NSMutableSet *seenCharacters = [NSMutableSet set];

NSMutableString *result = [NSMutableString string];

[input enumerateSubstringsInRange:NSMakeRange(0, input.length) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {

if (![seenCharacters containsObject:substring]) {

[seenCharacters addObject:substring];

[result appendString:substring];

}

}];

NSLog(@"String with duplicate characters removed: %@", result);

NSLog(@"Sorted characters in input: %@", [seenCharacters.allObjects sortedArrayUsingSelector:@selector(compare:)]);

这导致字符串"adbc"的(重复删除)和排序的唯一字符数组["a", "b", "c", "d"]

以上是 删除NSString中的所有重复字符 的全部内容, 来源链接: utcz.com/qa/258991.html

回到顶部