关于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-省市区习题相关推荐
- OC面向对象的三大特征(封装 继承 多态)习题2 复合
复合:一个类中有一个成员变量是另外一个类的对象. 比如我现在要制作一台电脑,电脑需要CPU,显示器,鼠标和键盘等.这些东西的研发都是很复杂的过程.如果现在有成型的CPU等组件,就可以直接用这些组件攒一 ...
- OC中用字典创建一个具有省市区的应用(简单的字典运用代码)
</pre><pre name="code" class="objc">#import <Foundation/Foundatio ...
- matlab oj,Matlab习题(1)
<Matlab习题(1)>由会员分享,可在线阅读,更多相关<Matlab习题(1)(46页珍藏版)>请在人人文库网上搜索. 1.习题 l1 执行下列指令, 观 察其运算 结果, ...
- 华师大计算机在线作业,华东师范大学计算机考研复试机试习题
华东师范大学计算机考研复试机试习题 华东师范大学计算机考研:计算机系.数据学院复试机试历年真题以及AC代码.历年学长总结得到.适用学院:计算机学院.数据学院.软件学院也可参考.sum/=10;prin ...
- 视觉SLAM十四讲CH3代码解析及课后习题详解
eigenMatrix.cpp #include <iostream>using namespace std;#include <ctime> // Eigen 核心部分 #i ...
- c语言里编译错误c131,C语言习题选择题.doc
<C语言习题选择题.doc>由会员分享,可在线阅读,更多相关<C语言习题选择题.doc(36页珍藏版)>请在装配图网上搜索. 1.答案试题C1.在C语言源程序中,以下叙述正确的 ...
- Python数据分析习题(基于pandasnumpy模块)(上)
练习题目录 习题编号 内容 相应数据集 练习1 - 开始了解你的数据 探索Chipotle快餐数据 chipotle.tsv 练习2 - 数据过滤与排序 探索2012欧洲杯数据 Euro2012_st ...
- 【本科课程】数电复习题
数电复习题 复习提纲 参考题 标题 : 数电复习题 起源: 先丢个复习题出来 有空再来填坑 - 更新次数: 1 最近更新时间 : 2021 6 19 首次更新时间: 更新内容: 下次更新: 复习提纲 ...
- 高等数学(第七版)同济大学 习题8-2 个人解答
高等数学(第七版)同济大学 习题8-2 1.设a=3i−j−2k,b=i+2j−k,求(1)a⋅b及a×b:(2)(−2a)⋅3b及a×2b:(3)a.b的夹角的余弦.\begin{aligned}& ...
- 金属学与热处理(第二版)课后习题答案+复习提纲
第一章 1.作图表示出立方晶系(1 2 3).(0 -1 -2).(4 2 1)等晶面和[-1 0 2].[-2 1 1].[3 4 6] 等晶向 编辑切换为居中 添加图片注释,不超过 140 字 ...
最新文章
- 查找linux所有目录中包含字符,Linux查找目录下包含有某字符串的全部文件
- 【Node】node的模块
- Visual Studio:error MSB8020
- pytorch学习笔记 1. pytorch基础 tensor运算
- virtualbox手动挂载共享文件夹
- spring 安全模块在jsp中误用引起的问题
- 1024. 科学计数法 (20)-PAT乙级真题
- like mybatis 用法_Mybaits中Like 的使用方式以及一些注意点
- Oracle ora-15070,查询字段过多触发了Oracle的BUG?【ORA-01465: 无效的十六进制数字】...
- 如何在Mac上备份和共享文本替换?
- EasyPusher直播推送中用到的缓冲区设计和丢帧原理
- cognos数据源配置修改oracle,Cognos 新建数据源报错(原创)
- 大数据技术 - MapReduce 作业的运行机制
- VP9编码(3)-- 符号
- java版溺尸刷怪塔_minecraft河流群系溺尸刷怪塔存档
- 如何培养对编程开发的兴趣
- toLua++使用(转)
- 三种循环的流程图画法总结 [转]
- 电路中滤波电容和退耦电容_怎么分清滤波电容、去耦电容、旁路电容
- ptable java_ttable怎么在java中编写
热门文章
- 线性汇编总结和函数说明
- avr-gcc中关于delay延时函数的应用修改版[ourdev]
- python打印菱形星号代码_Python打印“菱形”星号代码
- ios 检测是否联网_秋招|阿里 iOS 五轮面经分享,已收到阿里的意向书
- swiper怎么让不会回弹,为什么我的滚动条拉上拉下都会回弹呢?
- python打印所有花数_Python中使用while循环实现花式打印乘法表
- cpu开机就是60℃_铅锤哥:十五种电脑开机黑屏的原因与解决思路
- GPU Gems2 - 3 几何体实例化的内幕(Inside Geometry Instancing)
- hive币2021年预计涨到多少_比特币突破4万美元,比特币2021年会涨到多少?
- 利用matlab提取中心线