删除字符串中相同的字符串

问题

项目中服务器请求回来的一个字符串中有相同的情况,如str = @”4303,4305,4306,4303,4307”,需要将其中一个”4303”去掉

实现

  • 现将字符串截取处理,截取完成后是用一个数组来接收

NSArray *listStrs = [str componentsSeparatedByString:@","];

  • 将数组中多余的数据筛选出来,利用NSArray的containsObjects
1
2
3
4
5
6
NSMutableArray *listArr = [NSMutableArray alloc] init];
for(NSString *newStr in listStrs){
if(![listArr containsObject:newStr]){
[listArr addObject:newStr];
}
}
  • 将新的数据拼接起来

str = [listArr componentsJoinedByString:@","];

注:筛选的时候还有其他的方法

  • 利用NSDictionary的AllKeys,通过对数组中的数据赋值,相同的值只会赋值一次
1
2
3
4
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity: 0];
for(NSString *newStr in listStrs){
[dict setValue:newStr forKey:str];
}
  • 利用NSSet的AllObjects

NSSet *set = [NSSet setWithArray: listStrs];

这个人很帅<br>他什么都不想说<br>