oc的省市区放进一个数组

这里写图片描述
比较好的入门数组字典的题目.
题目要求将一个文件里面的省市区装入一个数组里.
首先我们要新创建一个工程并且将area.txt文件装入工程之中.
直接将文件拖动到工程名下

拖
拖后就是这个页面,打钩的就是防止源文件没有了所以复制一份到工程文件里
页面

拖完之后开始编程了.首先我们要将文件读取出来放进字符串中

 NSString *path   =@"/Users/lan/Desktop/Lesson_06_oc_for/Lesson_06_oc_for/area.txt";
    NSString *pathString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

pathString就是所有的字符串

NSArray * all = [pathString  componentsSeparatedByString:@"\n"];

将字符串以换行符为切割点分开,放进all的数组里.

省数组包含省字典.省字典有两对键值.一对值为省名,键值为@”省名”,另一对值为 市 的数组,键值为@”城市”.市的数组包含市字典,一个市一个市字典.市字典也象省字典,有两对键值.一对为市名,键值为@”市名”,另一对值为 区 的数组, 键值为 @”区” .区没有下属区域了,所以区的数组只包含nsstring对象,里面都是区的名字.

   NSMutableArray * shengzu=[[NSMutableArray alloc]init];
    for (NSString * address in all) {
        if (![address hasPrefix:@" "]) {
            //如果是省,创建一个省字典,最后把这个省字典加入省数组
            NSMutableDictionary * shengdic = [[NSMutableDictionary alloc]init];
            [shengdic setObject:address forKey:@"shengming"];
            NSMutableArray * shizu  = [[NSMutableArray alloc]init];
            [shengdic setObject:shizu forKey:@"shi"];
            //以上为放进两对键值到省字典,一个为省名,另一个是市数组

            [shengzu addObject:shengdic];

        }else if ([address hasPrefix:@"  "]&&![address hasPrefix:@"    "]){
            //如果到了市名,创建市字典.
           NSMutableDictionary * shidic = [[NSMutableDictionary alloc]init];
            [shidic setObject:address forKey:@"shiming"];

            NSMutableArray * quzu = [[NSMutableArray alloc]init];
            [shidic setObject:quzu forKey:@"qu"];
            //以上把市名,区数组两对键值放进市字典.
            //为了获取对应的位置. 首先获取对应省字典,此时省数组最后的元素就是对应的省字典.找到省字典后,省字典的key为市的object就是对应的市数组
            NSMutableDictionary *shengdic = [shengzu lastObject];
            NSMutableArray * shizu = [shengdic objectForKey:@"shi"];
            //找到对应的市数组就是为了把市字典加进市数组
            [shizu addObject:shidic ];
                    }

        else {
            //因为区没有下属的区域了,所以找到对应的位置之后直接把nsstring加进区数组
            NSMutableDictionary *shengdic = [shengzu lastObject];
            NSMutableArray * shizu = [shengdic objectForKey:@"shi"];
            NSMutableDictionary * shidic = [shizu lastObject];
            NSMutableArray * quzu =[shidic objectForKey:@"qu"];


            [quzu addObject:address];
        }

    }
 //遍历
    for (NSDictionary * shengdic in shengzu) {
        NSLog(@"%@",[shengdic objectForKey:@"shengming"]);
        for ( NSDictionary * shidic in [shengdic objectForKey:@"shi"]) {
            NSLog(@"%@",[shidic objectForKey:@"shiming"]);
            for (NSString *  qu in [shidic objectForKey:@"qu"]) {
                NSLog(@"%@",qu);
            }
        }
    }

遍历也比较有意思哦.因为我们要从数组跳字典,字典跳数组.真正理解了整个数组结构的人才明白怎样遍历.

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值