欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

关于OC-省市区习题

发布时间:2023/12/13 25 豆豆
生活随笔 收集整理的这篇文章主要介绍了 关于OC-省市区习题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

对于省市区的问题,关键在于搞清楚数组嵌套字典,字典里面装数组的多重嵌套关系,沉下心来,捋清楚思路,

实在看不懂就多打几遍,这道题理解了,熟练了对之后学习很有好处。

代码如下:

   NSString *path = @"/Users/lan/Desktop/省市区/省市区/area.txt";    //导入省市区文本的路径

   NSString *pathStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];    //通过UTF8转码,将省市区装入到字符串中

 NSArray *array = [pathStr componentsSeparatedByString:@"\n"];      //根据回车符号“\n”,将字符串切割成数组

   NSMutableArray *arrayProvince = [NSMutableArray arrayWithCapacity:0];  //创建初始化一个可变数组

 for (NSString *str in array) {  //遍历数组

            if (![str hasPrefix:@" "]) {     //判断非空格字符,找出省(由于省的名字前没有空格)

            //每找到一个省的名字,创建一个字典

            NSMutableDictionary *proDic = [NSMutableDictionary dictionaryWithCapacity:0];

            //将省的名字放入字典当中,并设置key为ProName

            [proDic setObject:str forKey:@"ProName"];

            //创建市的数组,存放市区的字典

            NSMutableArray *cityArray = [NSMutableArray arrayWithCapacity:0];

            //将数组存入省的字典中

            [proDic setObject:cityArray forKey:@"cityArray"];

            //将省字典放入省的字典中

            [arrayProvince addObject:proDic];

        }

        //找到市的名字

        else if ([str hasPrefix:@"  "] && ![str hasPrefix:@"    "]){

            //找到隶属的省的字典

            NSDictionary *proDic = [arrayProvince lastObject];

            //将省字典中预留的市的数组找出来

            NSMutableArray *cityarr = [proDic objectForKey:@"cityArray"];

            //创建市的字典

            NSMutableDictionary *cityDic = [NSMutableDictionary dictionaryWithCapacity:0];

            //把市的名字写入到市的字典中

            [cityDic setObject:str forKey:@"cityName"];

            //创建区的数组,用来存放找到的区的名字

            NSMutableArray *zoneArray = [NSMutableArray arrayWithCapacity:0];

            //把区的数组,放入到市的字典中

            [cityDic setObject:zoneArray forKey:@"zoneArray"];

            //把市的字典放入到市的数组中

            [cityarr addObject:cityDic];

        }

        else{

            //找到隶属的省的字典

            NSDictionary *proDic = [arrayProvince lastObject];

            //将省字典中预留的市的数组找出来

            NSMutableArray *cityarr = [proDic objectForKey:@"cityArray"];

            //将市数组中的市的字典找到

            NSDictionary *citDic = [cityarr lastObject];

            //将市字典中的区的数组找到

            NSMutableArray *zoneArray = [citDic objectForKey:@"zoneArray"];

            [zoneArray addObject:str];

        }

        for (NSMutableDictionary *dic1 in arrayProvince) {    //遍历打印

            NSLog(@"%@",[dic1 objectForKey:@"ProName"]);

            for (NSMutableDictionary *dic2 in [dic1 objectForKey:@"cityArray"]) {

                NSLog(@"%@",[dic2 objectForKey:@"cityName"]);

                for (NSString *str in [dic2 objectForKey:@"zoneArray"]) {

                    NSLog(@"%@",str);

                }

            }

        }

 

转载于:https://www.cnblogs.com/LE-Quan/p/5083725.html

总结

以上是生活随笔为你收集整理的关于OC-省市区习题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。