Там нет встроенного метода для этого, но это довольно легко перебрать символы строки и построить новую строку без дубликатов:
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"]
.
Я не думаю, что это может быть выполнено без повторения через исходную строку. – omz
Как и на этот вопрос http://stackoverflow.com/questions/1072744/checking-for-multiple-characters-in-nsstring –