我有以下数组和搜索字符串。
NSArray *values =[NSArray arrayWithObjects:@"abc",@"xyz",@"cba",@"yzx",nil];
NSString *search = @"startcba";
我想在数组元素中搜索字符串的结尾部分。我期待的搜索结果将是@“cba”。请告诉我如何在数组中找到所需的值以进行搜索。
谢谢,
答案 0 :(得分:4)
您可以使用NSPredicate
来获取满足您要求的元素。
NSPredicate * predicate = [NSPredicate predicateWithFormat:@" %@ ENDSWITH SELF ", search];
NSArray * searchResults = [values filteredArrayUsingPredicate:predicate];
答案 1 :(得分:1)
NSPredicates方式很棒。
以下是rangeOfString:
的方法NSArray *values =[NSArray arrayWithObjects:@"abc",@"xyz",@"cba",@"yzx",nil];
NSString *search = @"startcba";
NSUInteger searchLength = [search length];
NSString *result = nil;
for (NSString *val in values)
{
NSUInteger valLength = [val length];
NSRange expectedRange = NSMakeRange(searchLength - valLength, valLength);
NSRange rng = [search rangeOfString:val];
if ( rng.location == expectedRange.location && rng.length == expectedRange.length )
{
result = val;
break;
}
}