2011-07-15 41 views
-1

我创建了一个NSMutableArray并正在搜索/匹配数组的内容与NSString's子串,但如何做到这一点?如何在NSString的子字符串中搜索NSMutablearray内容?

NSMutableArray *tmparray = {@"PPG" , @"AG" , @"HD" }; 
NSString *tmpstring = @"MAAPPG"; 

if ([tmparray containsObject:tmpstring]) { 
    NSLog(@"String found"); 
} 

但它不会发生,因为tmparray包含“PPG”而不是“MAAPPG”如何搜索子字符串匹配?

回答

2

这个怎么样

for(NSString *arrString in tmparray){ 
if([tmpstring rangeOfString:arrString].location != NSNotFound){ 
    NSLog(@"String found"); 
} 
} 
3

您可以使用NSPredicate要做到这一点,但它可能是缓慢的。这里是沿着你的努力的线条更简单的方法:

NSMutableArray *tmparray = {@"PPG" , @"AG" , @"HD" }; 
NSString *tmpstring = @"MAAPPG"; 
NSRange *tmprange; 
for(NSString *string in tmparray) { 
    tmprange = [tmpstring rangeOfString:string]; 
    if (tmprange.location != NSNotFound) { 
     NSLog(@"String found"); 
     break; 
    } 
} 
+0

你已经把在断开给你+1 :) – jrtc27

+0

应使用'rangeOfString'来代替'rangeOfSubstring' –

0
NSArray *tmparray = [NSArray arrayWithObjects:@"PPG" , @"AG" , @"HD",nil]; 
    NSString *tmpstring = @"MAAPPG"; 
    NSRange textRange; 
    for(NSString *string in tmparray) 
    { 
     textRange =[tmpstring rangeOfString:string]; 
     if(textRange.location != NSNotFound) 
     { 
      NSLog(@"String found "); 
     } 
    } 

检查此通过使用其他子也......