2012-08-22 24 views
-1

我正在嘗試開發一個包含大量單詞的數組的應用程序。我想從它創建一個新的過濾數組。過濾是基於我使用正則表達式設法創建的模式完成的。例如,我應該能夠用單詞從我的數組中過濾掉「ap_l_」這個單詞。誰能幫我嗎?篩選包含指定字符串的數組

+2

你是什麼意思?你需要提供更多的信息。 – rdelmar

+0

可能重複:http://stackoverflow.com/questions/110332/filtering-nsarray-into-a-new-nsarray-in-objective-c – jtomschroeder

回答

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; 
} 
1

如果所有元素都是可以使用的字符串。

for(NSString *str in arrayName) 
    { 
     if([str isEqualToString:@"searchString"]) 
     { 

      //wirte own code here 
     } 



    } 
1

如果我理解你的問題......試試這個

if([your_array containsObject: your_string]){ 
     do something 
} 

希望這有助於過濾數組

2

最好的辦法是使用謂詞。如果你有一個字符串數組,例如:

NSArray *stringsArray = [NSArray arrayWithObjects:@"Joe", @"Bill", @"David", @"Jeff", nil]; 

您可以使用filteredArrayUsingPredicate輕鬆過濾吧:如果,例如,你想篩選@「比爾」的所有實例上述陣列,你會做這樣的:

NSArray *filteredArray = [stringsArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF == 'Bill'"]]; 
如果要過濾掉@「條例」

,那麼你會怎麼做這個:

filteredArray = [stringsArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != 'Bill'"]]; 

等等。

相關問題