2012-01-22 25 views
0

我有一個數組,我知道如何計算它的元素,但我需要計算元素,直到一個特定的詞:計數NSMutableArray大小直到還是從特定單詞?

NSMutableArray *whatBondInFrame; 

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

我知道[ whatBondInFrame count],讓我們說,我想知道有多少元素我一直到第一個灰色或從單詞「跑」。

我該怎麼做?

回答

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。 如果你想知道有多少元素有前(至)字「跑」,那麼替換

int length = loc 
+0

非常感謝,這是一個不錯的選擇,但我想要蘋果給你的東西,簡單。不管怎麼說,還是要謝謝你 。 – Curnelious

+0

不是沒有特定的API來做到這一點。我添加了一些信息給我的答案 – JonasG

1

NSArray方法的最後一行:

- (NSUInteger)indexOfObject:(id)anObject 

將返回的索引在對象上首次出現,所以你可以做:

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

有一個伴隨方法:

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

這將搜索限制在數組的給定範圍內。找不到最後一次出現的方法,因爲您必須使用上述方法進行循環。

結合count方法,你可以得到你想要的數字。

相關問題