Iphone 如何基于字符串分割字符串数组';长度是多少?

Iphone 如何基于字符串分割字符串数组';长度是多少?,iphone,arrays,string,Iphone,Arrays,String,我希望可以用“NSPredicate”完成。我有数千个字符串的数组,我想使用字符串长度将其拆分为数组。i、 e.长度为2的字符串将进入一个数组。长度为3的字符串将以数组形式出现,以此类推。是否可以使用“NSPredicate”。我查了NSPredicate类参考。但找不到有用的例子 谢谢Neal我希望下面的代码能解决您的问题 NSString *regExp = @"[A-Z0-9a-z]{2,3}"; NSPredicate *predicate = [NSPredicate predic

我希望可以用“NSPredicate”完成。我有数千个字符串的数组,我想使用字符串长度将其拆分为数组。i、 e.长度为2的字符串将进入一个数组。长度为3的字符串将以数组形式出现,以此类推。是否可以使用“NSPredicate”。我查了NSPredicate类参考。但找不到有用的例子


谢谢Neal

我希望下面的代码能解决您的问题

 NSString *regExp = @"[A-Z0-9a-z]{2,3}";
 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regExp];

    NSMutableArray *array=[NSMutableArray new];
    [array addObject:@"ABC"];
    [array addObject:@"AGADF"];
    [array addObject:@"ADFADS"];
    [array addObject:@"DD"];
    [array addObject:@"DFA"];

    NSArray *filtered = [array filteredArrayUsingPredicate:predicate];

    NSLog(@"filter : %@",filtered);

我相信使用regex的NSPredicate可能没有效率。这段代码肯定能更有效地解决这个问题,您将得到字典,其中键是字符串长度,对象是包含特定长度字符串的对应数组

NSMutableDictionary* filtered = [NSMutableDictionary dictionary];
NSMutableArray* strings =[NSMutableArray array];
[strings addObject:@"ABC"];
[strings addObject:@"AGADF"];
[strings addObject:@"ADFADS"];
[strings addObject:@"DD"];
[strings addObject:@"DFA"];


for (NSString* s in strings) {
    NSNumber* key = [NSNumber numberWithInt:[s length]];
    NSMutableArray* arr = [filtered objectForKey:key];
    if (nil==arr) {
        arr = [NSMutableArray array];
        [filtered setObject:arr forKey:key];
    } 
    [arr addObject:s];
}