比较2个字符串数组

时间:2014-02-07 12:03:04

标签: comparison nsarray

我有2个字符串数组:

NSArray * current = @[@"1", @"6", @"53"];  
NSArray * new = @[@"1", @"626", @"53", @"13"]; 

我想在数组中获得数字6,在第二个数组中获得数字626和13 (我希望数据在第一个数组中,但不存在第二个数据,反之亦然)

NSMutableSet * newSet = [NSMutableSet setWithArray:new];
[newSet minusSet:[NSSet setWithArray:current ]];
NSArray * result1 = [NSArray arrayWithSet:newSet];
NSArray * result2 = ?

我没理解,我知道这是一个非常简单的问题,但我没有想法

2 个答案:

答案 0 :(得分:0)

//仅创建ID数组

NSArray *notiCloudIDs = [notiCloud valueForKey:@"id"];

NSArray *notiLocIDs = [notiLoc valueForKey:@"id"];

//将数组转换为集合并与两组相交

NSMutableSet *notiCloudIDsSet = [NSMutableSet setWithArray:notiCloudIDs];

NSMutableSet *notiLocIDsSet = [NSMutableSet setWithArray:notiLocIDs];

[notiCloudIDsSet intersectSet:notiLocIDsSet];

//两个数组中都存在notiCloudIDsSet中的ID

NSLog(@"Duplicate IDs: %@", notiCloudIDsSet);

这将为您提供两者中的共同元素。然后,您可以从array1中删除公共元素。

答案 1 :(得分:0)

您的代码包含许多语法错误。 请发布实际代码,我理解你所说的问题,这就是我发布这个答案的原因。请使用有效代码发布问题,否则您将无法获得正确答案(仅限获取投票)

使用以下代码:

NSArray *current = @[@"1", @"6", @"53"];
NSArray *newArr  = @[@"1", @"626", @"53", @"13"];


NSMutableSet *newSet = [NSMutableSet setWithArray:newArr];
[newSet minusSet:[NSSet setWithArray:current]];
NSArray * result1 = [NSArray arrayWithObjects:[newSet allObjects],nil];
// result 1 will have 626 and 13

newSet = [NSMutableSet setWithArray:current];
[newSet minusSet:[NSSet setWithArray:newArr]];
NSArray * result2 = [NSArray arrayWithObjects:[newSet allObjects],nil];
// result 2 will have 6