Iphone 如何基于字符串分割字符串数组';长度是多少?
我希望可以用“NSPredicate”完成。我有数千个字符串的数组,我想使用字符串长度将其拆分为数组。i、 e.长度为2的字符串将进入一个数组。长度为3的字符串将以数组形式出现,以此类推。是否可以使用“NSPredicate”。我查了NSPredicate类参考。但找不到有用的例子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
谢谢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];
}