// 引入文件路径
NSString *path = @"/Users/dllo/Desktop/boke/boke/area.txt";
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
// 根据回车分割字符串
NSArray *strArr = [str componentsSeparatedByString:@"\n"];
// 创建一个省数组,省数组里面有省字典
NSMutableArray *proArr = [NSMutableArray array];
// 遍历判断,如果是省元素,就放进省字典中.省字典包括省名和市数组两部分
for (NSString *temp in strArr) {
if (![temp hasPrefix:@" "]) {
// 创建省字典
NSMutableDictionary *proDic = [NSMutableDictionary dictionary];
// 向省字典中添加键值对
[proDic setObject:temp forKey:@"proName"];
//创建一个市数组
NSMutableArray *cityArr = [NSMutableArray array];
// 将市数组放入省字典
[proDic setObject:cityArr forKey:@"cityArr"];
// 最后将省字典放入省数组中
[proArr addObject:proDic];
}else if (![temp hasPrefix:@" "] && [temp hasPrefix:@" "]){
// 判断如果是市元素,就创建市字典,市字典包括市名和区数组两部分
// 创建市字典
NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
// 将市名作为键值对添加到市字典
[cityDic setObject:temp forKey:@"cityName"];
// 创建一个区数组
NSMutableArray *zoneArr = [NSMutableArray array];
// 将区数组放入市字典
[cityDic setObject:zoneArr forKey:@"zoneArr"];
// 把市字典放到对应的市数组里
// 只要没有操作完,对应的省字典就在省数组的最后一位
NSMutableDictionary *proDic = [proArr lastObject];
// 找到省对应的市数组
NSMutableArray *cityArr = proDic[@"cityArr"];
// 将市字典添加到市数组中
[cityArr addObject:cityDic];
}else{
// 找到区对应的市数组和省
NSMutableDictionary *proDic = [proArr lastObject];
NSMutableDictionary *cityDic = [proDic[@"cityArr"] lastObject];
NSMutableArray *zoneArr = cityDic[@"zoneArr"];
// 把区名放进区数组,区数组只包含区名
[zoneArr addObject:temp];
}
}
// 遍历输出
// 输出省名
for (NSDictionary *proDic in proArr) {
NSLog(@"%@",proDic[@"proName"]);
// 找到省字典中的市数组
NSMutableArray *cityArr = proDic[@"cityArr"];
// 在市数组中的市字典中遍历输出市名
for (NSDictionary *cityDic in cityArr) {
NSLog(@"%@",cityDic[@"cityName"]);
// 找到市字典中的区数组
NSMutableArray *zoneArr = cityDic[@"zoneArr"];
// 遍历输出区名
for (NSDictionary *temp in zoneArr) {
NSLog(@"%@",temp);
}
}
}