2014-11-08 47 views
2

我正在使用解析數據庫來存儲一些記錄。我正在存儲一個字符串數組,我希望能夠在這個數組中搜索子字符串。下面是一個例子:IOS解析如何搜索一個子串的字符串數組?

數組A:

["carbrown","blue","house","coldturkey"] 

陣列B:

["racecar","green","walking"] 

陣列C:

["greenturkey","users","published","ramp"] 

我希望能夠搜索像一個子car並獲得數組A和B作爲匹配結果,或搜索turkey給我匹配的r與數組A和C esults或​​給我數組B和C,等等..

我知道,對於字符串您可以在解析使用:

- (void)whereKey:(NSString *)key containsString:(NSString *)substring 

這是可能的陣列,也許正則表達式?

+0

hi @SuperKevin您是否找到了解決此問題的解決方案? – Coyote 2016-01-22 17:41:49

回答

2

您可以使用NSPredicate來達到此目的。以下是一個例子。

NSArray *a = @[@"carbrown",@"blue",@"house",@"coldturkey"]; 
NSArray *b = @[@"racecar",@"green",@"walking"]; 
NSArray *c = @[@"greenturkey",@"users",@"published",@"ramp"]; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", @"car"]; 
NSArray *filteredArrayA = [a filteredArrayUsingPredicate:predicate]; 
NSArray *filteredArrayB = [b filteredArrayUsingPredicate:predicate]; 
NSArray *filteredArrayC = [c filteredArrayUsingPredicate:predicate]; 

if ([filteredArrayA count]) { 
    NSLog(@"A has car in it"); 
} 
+0

謝謝,但這些數組在解析系統中。我在問如何從解析中獲取這些匹配的值,我沒有在內存中使用這些數組。 – SuperKevin 2014-11-08 14:06:18

+0

對不起,我不知道。不熟悉Parse。 – gabbler 2014-11-08 14:11:59