2013-08-22 6 views
0

문자열에서 중복 된 substings을 제거하려면 어떻게해야합니까? 예를 들어. 나는 가지고있다 : aaa, bbb, ttt, bbb, rrr. RRR 그리고 결과에 내가 AAA, BBB, TTT을 갖고 싶어, (삭제는 BBB 중복). 당신의 도움을 바랍니다. 감사.NSString 중복 된 부분 문자열 제거

답변

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) 배열의 concate 문자열

(210)
NSString *myString = [myArray componentsJoinedByString:@","]; 
+0

그것은 좋은 것입니다. simillar 문제가있는 사람은 누구나이 글을 쓰는 방법을 모른다. – doge

+0

당신은 그것을봤을 수 있고, 그것을 매우 쉽게 발견했습니다. http://stackoverflow.com/questions/5978574/removing-duplicates-from-nsmutablearray 및 http://stackoverflow.com/questions/1025674/the-best-way-to-remove-duplicate-values-from-nsmutablearray- in-objective-c – keen

+0

- 1 답에 2 단계 코드를 추가하십시오. 사람들은 모든 사람들이 모든 것을 알고 있다고 가정 할 수 있다고 생각할 것입니다. 질문이 완료되면 +1을 추가합니다. – doge

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] : @""; 
0

당신은 NSMutableDictionary를 사용할 수 있습니다; 사전에는 두 가지 요소가 있습니다. 1. 키 2. 값

키를 배열 요소로 설정하기 만하면됩니다. 'Key'는 중복 될 수 없다는 것이 특기입니다.

지금 바로 사용하여 키 배열을 얻을 [사전해서 AllKeys];

지금이 단계에서 당신은 새로운 배열에 고유 한 값을 가지고; 당신은 두 단계에 대한 코드를 추가 한 경우