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);
            }
        }
    }

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

一款轻量而功能强大的点云可视化和编辑软件,支持pcd, ply, las等多种格式,轻松打开海量点云数据,支持多方式多字段渲染点云,对点进行方便的查询、量测和编辑,提供了地面滤波算法,可应用于测绘、高精地图、SLAM等领域。 PCDViewer是一款专业的点云数据处理软件,特别适用于处理和编辑大规模点云数据。该软件支持多种点云文件格式,包括pcd、ply和las等,这些格式广泛应用于激光雷达扫描数据、三维建模以及其他测绘技术。PCDViewer的强大之处在于其轻量级的系统要求与丰富的功能集,使得用户可以在Windows、Ubuntu等操作系统上轻松运行软件,高效地处理海量点云数据。 这款软件的一个主要特点是其多方式多字段渲染点云的能力。这允许用户根据不同的属性,如颜色、强度、高度等,对点云进行视觉上的分类和区分,从而更直观地分析和理解点云数据。此外,PCDViewer还提供了方便的查询、量测和编辑功能,允许用户直接对点云数据进行操作,诸如添加注释、删除噪声点或进行精确测量等,极大地提高了工作效率。 软件还内置了地面滤波算法,这一功能对于测绘学、地理信息系统(GIS)以及机器人导航和定位(SLAM)等领域尤为关键。地面滤波算法能够从点云数据中分离出地面点和非地面点,这对于如道路建模、地形分析、植被测量等应用来说至关重要。通过分离地面点,可以更准确地进行地面建模和地形特征分析,为自动化系统提供清晰的环境地图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值