计算NSMutableArray大小直到或来自特定单词?

时间:2012-01-22 10:49:53

标签: objective-c nsmutablearray

我有一个数组,我知道如何计算它的元素,但我需要计算元素直到一个特定的单词:

NSMutableArray *whatBondInFrame;

whatBondInFrame=[NSMutableArray arrayWithObjects:@"red",@"red",@"red",@"gray",@"red",@"ran",@"gray",@"gray",nil];

我知道[ whatBondInFrame count] 但是,假设我想知道我有多少元素,直到第一个灰色单词“ran”。< / p>

我怎么能得到它?

2 个答案:

答案 0 :(得分:1)

这未经过测试但应该有效:

int loc = 0;
for (loc; loc < [array count]; loc++) {
    NSString *str = [array objectAtIndex:loc];
    if ([str isEqualToString:@"ran"])
        break;
}
int length = array.count-loc;

这将为您提供名为ran的第一个元素中的count。 如果你想知道之前(直到)单词'ran'有多少元素,那么用

替换最后一行
 int length = loc

答案 1 :(得分:1)

NSArray方法:

- (NSUInteger)indexOfObject:(id)anObject

将返回对象上第一次出现的索引,因此您可以执行以下操作:

NSUInteger firstRanIndex = [whatBondInFrame indexOfObject:@"ran"];

有一种配套方法:

- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range

将搜索限制在数组的给定范围内。没有找到最后一次出现的方法,因为你必须使用上述方法循环。

结合count方法,您可以获得所需的数字。