如何将字符串部分与objective-c中的NSArray值匹配

时间:2011-07-22 12:05:05

标签: objective-c cocoa search nsstring nsarray

我有以下数组和搜索字符串。

NSArray *values =[NSArray arrayWithObjects:@"abc",@"xyz",@"cba",@"yzx",nil];

NSString *search = @"startcba";

我想在数组元素中搜索字符串的结尾部分。我期待的搜索结果将是@“cba”。请告诉我如何在数组中找到所需的值以进行搜索。

谢谢,

2 个答案:

答案 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;
    }
}