如何获取以ios中的字母开头的数组元素的索引?

时间:2014-04-18 06:12:22

标签: ios objective-c nsarray

我想获取以特定字母开头的数组索引, 示例:我有一个数组

NSArray *arr = @[@"apple", @"aghf", @"chg", @"dee", @"ijh", @"inbv", @"khh"];

如何获取以" a"?开头的数组元素的索引

如果它是0和1,如何获得这两个值?请帮忙

2 个答案:

答案 0 :(得分:3)

我会使用NSArray的indexesOfObjectsPassingTest:方法来处理这个问题。它将为您提供一个索引集,其中包含通过您指定的测试的所有索引。在这种情况下,字符串是否以字母" a"为前缀。

NSArray *array = @[@"apple", @"aghf", @"chg", @"dee", @"ijh", @"inbv", @"khh"];

NSIndexSet *indexes = [array indexesOfObjectsPassingTest:^BOOL(NSString *string, NSUInteger idx, BOOL *stop) {
    return [string hasPrefix:@"a"];
}];

NSLog(@"%@",indexes);

从那里,如果你宁愿将这些索引存储在一个数组中,你所要做的就是枚举该集合,并将包含索引的NSNumbers添加到一个新数组中。

答案 1 :(得分:0)

使用以下代码:

text = @"a";        
filterArray = [[NSMutableArray alloc] init];
for(int i=0; i<names.count; i++)
{
     NSString *obj = names[i];
     NSRange nameRange = [obj rangeOfString:text options:NSCaseInsensitiveSearch];
     if(nameRange.location != NSNotFound && nameRange.location == 0)
          [responseArray addObject:obj];
}