我有一个数组,我知道如何计算它的元素,但我需要计算元素直到一个特定的单词:
NSMutableArray *whatBondInFrame;
whatBondInFrame=[NSMutableArray arrayWithObjects:@"red",@"red",@"red",@"gray",@"red",@"ran",@"gray",@"gray",nil];
我知道[ whatBondInFrame count]
但是,假设我想知道我有多少元素,直到第一个灰色或单词“ran”。< / p>
我怎么能得到它?
答案 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
方法,您可以获得所需的数字。