Objective C中的两个数组中的字符串搜索
Posted
技术标签:
【中文标题】Objective C中的两个数组中的字符串搜索【英文标题】:String Search in two arrays in Objective C 【发布时间】:2015-11-06 09:23:55 【问题描述】:我的代码中有这个所有国家/地区的数组。我想通过该数组比较另一个第二个数组以检查它是否包含国家/地区名称。
例子
NSString *str=@"Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antarctica,";
NSArray *arr = [str componentsSeparatedByString:@","];
NSString *myStr = "Toyota, Nissan, Bottle, Albania, Pen, Bag";
NSArray *myarr = [myStr componentsSeparatedByString:@","];
我想比较一下,如果MyStringArray
中有与CountryArray[]
匹配的国家/地区名称,则分配给字符串。
【问题讨论】:
我认为这不是有效的 Obj-C 语法 @Arc676 我将其用于演示目的只是为了得到这个想法。我的数组中只有一个国家/地区 数组中有哪些数据类型? @Arc676 都是字符串。 Finding Intersection of NSMutableArrays的可能重复 【参考方案1】:int originLength = MyStringArray.count;
NSMutableArray *arr = [NSMutableArray arrayWithArray:MyStringArray];
[arr removeObjectsInArray: CountryArray];
int diff = [arr count];
if (originLength == diff)
/// all diff
else
【讨论】:
【参考方案2】:其他答案也可以,但有一个 NSArray 方法可以让这变得微不足道:
NSArray *countryNamesArray = @[@"Australia", @"Japan", @"Sweden"];
NSArray *arrayContainingOneCountryName = @[@"Dog", @"Felafel", @"Australia"];
NSString *matchingCountry = [arrayContainingOneCountryName firstObjectCommonWithArray:countryNamesArray];
NSLog(@"%@", matchingCountry);
【讨论】:
【参考方案3】:编辑:没关系,使用其他答案;它更好。我将把它留在这里作为替代方法。
您可以遍历MyStringArray
中的元素并使用[NSArray contains:]
来检查元素是否存在。
NSMutableArray *commonItems;
for (String *str in MyStringArray)
if ([Country containsObject:str])
//Both arrays contains str
[commonItems addObject:str];
//commonItems now contains the country
我使用了一个数组,因为您没有指定可能有多少常见项目。
另外,componentsSeparatedByString
中应该有@", "
(注意空格)
【讨论】:
是的。如果我不知道会有多少常见项目,这将非常有帮助。谢谢以上是关于Objective C中的两个数组中的字符串搜索的主要内容,如果未能解决你的问题,请参考以下文章