2010-10-07 74 views

回答

0
NSString* firstLetter; 

for(NSString* currentString in yourArray) 
{ 
    firstLetter = [NSString stringWithFormat:@"%c", [currentString characterAtIndex:0]]; 
    if([firstLetter isEqualToString:@"c"]) 
    { 
      // NAME OK 
    } 
    else 
    { 
     // NAME WRONG 
    } 
} 
+0

爲什麼%d?你試過這個嗎? – 2011-02-01 14:34:59

+0

糟糕!編輯 – MathieuF 2011-02-01 16:20:09

+1

這是非常低效的。它爲'yourArray'中的每個項目創建一個新的格式化字符串並執行字符串比較。 – rpetrich 2011-03-12 07:40:58

3

另一種方式做,這是enumerateObjectsUsingBlock

[yourArray enumerateObjectsUsingBlock:^(id name,NSUInteger idx,BOOL *stop) { 
    if ([name characterAtIndex:0] == 'c') { 
      NSLog(@"Name begins with c: %@",name); 
    } 
}]; 

(也請注意,你想測試除了「C」「C」,如果你的輸入是不是所有小寫)

+0

+1。我感興趣的是爲什麼你選擇了塊枚舉而不是for循環。個人喜好或特定原因? – 2011-02-01 14:44:35

+0

如果您希望在第一場比賽中停止搜索,那麼使用塊(* stop = true)比使用直接'for ... in'快速枚舉更容易。如果需要,塊構造也可以更容易並行化操作(在' - [NSArray enumerateObjectsWithOptions:usingBlock:]'上使用'NSEnumerationConcurrent'選項)。 – 2011-02-01 14:50:07

+0

它還可以輕鬆訪問對象的索引,在使用快速枚舉時需要更多的工作。 – Abizern 2011-02-18 12:25:08