数组和字典的组合应用
2014-06-10 22:11
309 查看
文本数据见博客中的《数组和字典的应用数据》
int main(int argc, const char * argv[]) { //文件路径 可以把磁盘上的文件直接拖入项目即可得到文件路径 NSString *filePath = @"/Users/.../area.txt"; //错误信息 NSError *error = nil; //把文件从磁盘读入内存 保存为字符串对象 NSString * buffer = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; //打印错误信息 if (error) { NSLog(@"error : %@", [error localizedDescription]); exit(1); } //以'\n'为分割符把字符串分割成数组 NSArray *array = [buffer componentsSeparatedByString:@"\n"]; NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@" 0123456789"]; //创建一个可变数组做为数据封装的载体 NSMutableArray *provinces = [NSMutableArray array]; for (NSString *s in array) { //找到一个省的名字(省名左对齐) if (![s hasPrefix:@" "]) { //创建用于保存城市信息的数组 NSMutableArray *cities = [NSMutableArray array]; //把省名称的两边的空格和数字去掉 NSString *provinceName = [s stringByTrimmingCharactersInSet:charSet]; //把省名称和城市数组封装成字典 NSDictionary *pDic = [NSDictionary dictionaryWithObjectsAndKeys:provinceName,@"name",cities,@"cities", nil]; //添加到大数组中 [provinces addObject:pDic]; } //找到一个城市的名字(城市名前只有两个空格) if ([s hasPrefix:@" "] && ![s hasPrefix:@" "]) { //获取最后一个添加的省信息的字典 NSDictionary *pDic = [provinces lastObject]; //获取最后一个添加的省的信息的字典中的城市数组 NSMutableArray *cities = [pDic objectForKey:@"cities"]; //把城市的名称的前后空格和数字去掉 NSString *cityName = [s stringByTrimmingCharactersInSet:charSet]; //创建保存区信息的数组 NSMutableArray *areas = [NSMutableArray array]; //把城市名称和区数组封装成字典 NSDictionary *cDic = [NSDictionary dictionaryWithObjectsAndKeys:cityName, @"name", areas, @"areas", nil]; //添加到对应的城市数组中 [cities addObject:cDic]; } //找到一个区的名字(区名前有四个空格) if ([s hasPrefix:@" "]) { //获取最后一个添加的省信息的字典 NSDictionary *pDic = [provinces lastObject]; //获取最后一个添加的省的信息的字典中的城市数组 NSMutableArray *cities = [pDic objectForKey:@"cities"]; //获取城市数组中最后一个添加的城市字典 NSDictionary *cDic = [cities lastObject]; //获取城市字典中的区数组 NSMutableArray *areas = [cDic objectForKey:@"areas"]; //把区的名称的前后空格和数字去掉 NSString *areaName = [s stringByTrimmingCharactersInSet:charSet]; //添加到对应区数组口 [areas addObject:areaName]; } } NSLog(@"%@", provinces); //查找并输出山东省威海市的所有区的名称(测试) for (NSDictionary *dic in provinces) { NSString *pName = [dic objectForKey:@"name"]; if ([pName hasPrefix:@"山东"]) { NSArray *cities = [dic objectForKey:@"cities"]; for (NSDictionary *cDic in cities) { NSString *cName = [cDic objectForKey:@"name"]; if ([cName hasPrefix:@"威海"]) { NSArray *areas = [cDic objectForKey:@"areas"]; for (NSString *s in areas) { NSLog(@"%@",s); } } } } } return 0; }
相关文章推荐
- Linux 字典数组应用
- Swift数组字典基本定义控制流基本应用
- 数组和字典的应用数据
- 数组与字典的应用
- iOS 字典和数组写入plist文件存到应用沙盒当中(含读取)
- Swift组合数据类型字典数组..
- json解析出来的数据库是字典和数组的组合,创建一个model来接收解析数据
- C++组合应用之strtok字符串分割、数组平分算法、动态数组函数传参
- Swift中的调用函数及字典数组的应用
- 双数组原理在分词字典中的应用
- 字典+数组的应用——省市区
- 数组 字典组合
- Uva 10815 安迪的第一个字典 set数组应用实例
- SIP SAP及SDP协议组合应用的研究
- javascript中的对象和数组的应用技巧
- C#中的多维数组的应用
- 如何分隔字符串到数组中和asp.net下Split分隔字符串的应用
- Asp.net之数组应用
- Asp.net之数组应用
- 把vbscript发挥到它的极限应用之一(数组)!!!