oc中数组和字符串问题

一。随机产生1000个英文人名,每个人名由七个英文字符组成(abcdefg),把这1000个人名保存下来,每个字母大写。
二,用字典分类保存这些人名,(只要名字相同的第一个字母用关键字划归到同一类)。

http://blog.csdn.net/heikefangxian23/article/details/41038555

随机数产生,字符串操作,字典使用,这很简单的问题,多动脑子去想吧,不欢迎手残党。

//1000个英文名字,这个就模拟一下
NSArray *names = @[@"abc", @"bcd", @"cde",
@"acd", @"bbb", @"ced"];
//构造排序描述器
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES];
//排好序的数组
NSArray *result = [names sortedArrayUsingDescriptors:@[sort]];
//用于比较的字符串
NSString *compareStr = @"";
//初始化一个字典
NSMutableDictionary *dic = [NSMutableDictionary new];
//遍历数组
for (NSString *str in result) {
//截取首字母
NSString *header = [str substringToIndex:1];
//比较一不一样
if ([header isEqualToString:compareStr]) {
//如果一样
//取出数组
NSMutableArray *arr = [dic objectForKey:header];
//继续放
[arr addObject:str];
}else {
//如果不一样
//初始化一个可变数组
NSMutableArray *arr =[NSMutableArray new];
//把名字放进去
[arr addObject:str];
//放进字典里
[dic setObject:arr forKey:header];
//让比较用的字符串等于首字母
compareStr = header;
}
}

NSLog(@"%@", dic);

图片说明