2013-08-22 49 views
0

如何從字符串中刪除重複的子網?例如。我有:aaa,bbb,ttt,bbb,rrr。 而結果我想要aaa,bbb,ttt,rrr(刪除重複的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)來自陣列的連續字符串

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

如果您添加了第二步的代碼,那將會很不錯。由於每個人都有一個類似問題,可能不知道如何編寫它。 – 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請在答案中添加第二步的代碼。你不應該假設人們知道,如果是這樣的話,你可以假設每個人都知道一切。問題完成後將添加+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.值

只需將鍵設置爲您的數組元素; 特別的一點是,'鑰匙'不能重複;

現在只需使用[dictionary allKeys]獲取鍵的數組;

現在,在這個階段你有新數組中的唯一值;