删除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