2012-06-22 5 views
2

원본 문자열을 통한 수동 반복없이 표준 방법을 사용하여이를 수행하는 방법은 무엇입니까?NSString에서 중복 된 문자를 모두 제거

추신 : 나는 소스 문자열의 정렬 된 문자를 얻고 싶습니다. 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" 결과 :

+2

소스 문자열을 반복하지 않고도이 작업을 수행 할 수 있다고 생각하지 않습니다. – omz

+0

이 질문과 유사 http://stackoverflow.com/questions/1072744/checking-for-multiple-characters-in-nsstring –

답변

3

이에 대한 방법은 내장되어 있지 않습니다, 그러나 그것은 문자열의 문자 반복 및 중복없는 새로운 캐릭터를 구축하는 아주 쉽게) 및 고유 한 문자로 정렬 된 배열 ["a", "b", "c", "d"].