2012-04-18 72 views
0

我想获得NSArray中具有特定长度的字符串。如何从NSArray获得特定长度的字符串?

该数组有很多元素,我不想使用快速枚举。

有没有可能的方法?

+0

不管你怎么做,你会得到“在幕后”同样的功能 - 通过遍历数组并测试各个琴弦为自己长度。使用诸如filteredArrayWithPredicate之类的东西可以节省几个周期,而不是以直接的方式进行,或者可能会更慢,难以预测。 – 2012-04-18 11:32:44

+0

(当然你可以随时单独保存一些字符串长度列表,然后搜索一下,但是准备这个列表的开销太大了) – 2012-04-18 11:34:07

回答

2

这就像一个魅力:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.length == %d", lenght]; 
NSArray *filtered = [array filteredArrayUsingPredicate:predicate]; 
2

无论你做什么,无论你是否意识到,都将使用快速枚举。但是,您是否考虑过使用NSPredicate对象和filteredArrayWithPredicate方法?

0
NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Apple, Orange, Grapes, Cherry, nil"]; 

for(NSString *element in yourArray){ 

    if(element.length==yourLength){ 
     [filteredArray addObject:element]; 
    } 
} 

NSLog(@"Filtered array now contains the elements with length %d", yourLength); 
NSLog(@"Filtered array--%@", filteredArray); 
+0

嘿,我说我不想使用快速枚举。 – 2012-04-18 12:05:54

+0

请参阅@ borrrden的答案,即使我的答案(您接受)在引擎盖下使用快速枚举。 – 2012-04-18 12:08:31

相关问题