[英]how to match string portion with NSArray values in objective-c
我有以下数组和搜索字符串。
NSArray *values =[NSArray arrayWithObjects:@"abc",@"xyz",@"cba",@"yzx",nil];
NSString *search = @"startcba";
我想在数组元素中搜索字符串的结尾部分。 我预期的搜索结果将是@"cba"。 请让我知道如何在数组中找到期望值以进行搜索。
谢谢,
您可以使用NSPredicate
获取满足您要求的元素。
NSPredicate * predicate = [NSPredicate predicateWithFormat:@" %@ ENDSWITH SELF ", search];
NSArray * searchResults = [values filteredArrayUsingPredicate:predicate];
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.