2012-08-22 6 views
-1

엄청난 수의 단어가있는 배열을 포함하는 응용 프로그램을 개발하려고합니다. 나는 그것으로부터 새로운 필터링 된 배열을 만들고 싶다. 필터링은 정규 표현식을 사용하여 생성 한 패턴을 기반으로 수행됩니다. 예를 들어, 내 배열에서 "ap_l_"패턴을 사용하여 단어 "apple"을 단어로 필터링 할 수 있어야합니다. 누구든지 나를 도울 수 있습니까?지정된 문자열을 포함하는 배열을 필터링하십시오.

+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'"]]; 

는 "빌"@ OUT 필터링하려면, 당신은 할 것을 이 :

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

등등.

관련 문제