我正在尝试开发一个包含大量单词的数组的应用程序。我想从中创建一个新的过滤数组。过滤是基于我设法使用正则表达式创建的模式完成的。例如,我应该能够从带有单词的数组中过滤掉带有模式“ap_l_”的单词“apple”。谁能帮我吗?
问问题
4468 次
4 回答
6
使用下面的代码它将过滤数组
-(NSMutableArray *)searchByContains:(NSString *)containsString inputArray:(NSMutableArray *)inputArray
{
NSLog(@"orginal Array count=%d",[inputArray count]);
NSString *expression=[NSString stringWithFormat:@"SELF contains '%@'",containsString];
NSLog(@"expression=%@",expression);
NSPredicate *predicate = [NSPredicate predicateWithFormat:expression];
NSMutableArray *mArrayFiltered = [[inputArray filteredArrayUsingPredicate:predicate] mutableCopy];
return mArrayFiltered;
}
于 2012-08-22T16:28:36.347 回答
2
过滤数组的最佳方法是使用谓词。如果您有一个字符串数组,例如:
NSArray *stringsArray = [NSArray arrayWithObjects:@"Joe", @"Bill", @"David", @"Jeff", nil];
您可以使用 filtersArrayUsingPredicate: 轻松过滤它。例如,如果您想为所有 @"Bill" 实例过滤上述数组,您可以这样做:
NSArray *filteredArray = [stringsArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF == 'Bill'"]];
如果你想过滤 OUT @"Bill",那么你可以这样做:
filteredArray = [stringsArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != 'Bill'"]];
等等。
于 2012-08-22T15:48:12.750 回答
1
如果所有元素都是字符串,您可以使用 .
for(NSString *str in arrayName)
{
if([str isEqualToString:@"searchString"])
{
//wirte own code here
}
}
于 2012-08-22T15:31:47.733 回答
1
如果我理解你的问题......试试这个
if([your_array containsObject: your_string]){
do something
}
希望这可以帮助
于 2012-08-22T15:34:36.853 回答