OC中字典的使用,数组的使用----省市区

转载 2015年08月11日 21:57:23
//
//  main.m
//  OC07_课后作业
//
//  Created by dllo on 15/8/11.
//  Copyright (c) 2015年 SML. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    
    NSString *thePath = @"/Users/dllo/Desktop/OC07_课后作业/OC07_课后作业/area.txt";
    
    NSString *textFile = [NSString stringWithContentsOfFile:thePath encoding:NSUTF8StringEncoding error:nil];
    
//    NSLog(@"%@", [NSString stringWithString:thePath ]);
//    NSLog(@"%@", textFile);
   
    
    //用"\n" 取出文件字符串每一行的字符, 保存到数组中
    NSArray *array = [textFile componentsSeparatedByString:@"\n"];
//    NSLog(@"%@", array); //打印数组中分割好的字符串
    
    NSMutableArray *proArray = [NSMutableArray array];
    
    //把省放到数组中,声明省字典
    for (NSString *string in array) {
        if (![string hasPrefix:@" "]) {
            NSMutableDictionary *proDict = [NSMutableDictionary dictionary];
            [proDict setObject:string forKey:@"name"];
            [proArray addObject:proDict];
            
            
            
            NSMutableArray *cityArray = [NSMutableArray array];
            //把市数组装进省字典
            [proDict setObject:cityArray forKey:@"cityArray"];
            
            
            }
        
        if ([string hasPrefix:@"  "]&&![string hasPrefix:@"    "]) {
            
            NSMutableDictionary *proDic = [proArray lastObject];
            
            NSMutableArray *cityArray = [proDic objectForKey:@"cityArray"];
            
            NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
            
            [cityDic setObject:string forKey:@"cityName"];
            
            [cityArray addObject:cityDic];
            
//            NSLog(@"%@", cityArray);
            
            NSMutableArray *areaArray = [NSMutableArray array];
            
            [cityDic setObject:areaArray forKey:@"areaArray"];
            
        }
        
        if ([string hasPrefix:@"    "]) {
            NSMutableDictionary *proDic = [proArray lastObject];
            
            NSMutableArray *cityArray = [proDic objectForKey:@"cityArray"];
            
            NSMutableDictionary *cityDic = [cityArray lastObject];
            
            NSMutableArray *areaArray = [cityDic objectForKey:@"areaArray"];
            
            [areaArray addObject:string];
            
        }
        
    }
//    NSLog(@"%@", proArray);
    
    for (NSDictionary *dic in proArray) {
        NSLog(@"%@", [dic objectForKey:@"name"]);
        
        for (NSDictionary *cityDic in [dic objectForKey:@"cityArray"]) {
            NSLog(@"%@", [cityDic objectForKey:@"cityName"]);
            
            for (NSString *str in [cityDic objectForKey:@"areaArray"]) {
                NSLog(@"%@", str);
                
            }
        }
    }
    
    
    
    
    

    
    
    return 0;

}



//
//  main.m
//  字典-省市区
//
//  Created by dllo on 15/8/11.
//  Copyright (c) 2015年 SML. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    NSString *path =@"/Users/dllo/Desktop/字典-省市区/字典-省市区/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 *districtArr = [NSMutableArray array];
            [cityDic setObject:districtArr forKey:@"districtArr"];
            // 给市字典找一个位置
            // 先找到对应的省字典
            NSMutableDictionary *proDic = [proArr lastObject];
            // 再找对应的市数组
            NSMutableArray *cityArr = proDic[@"cityArr"];
            // 再把市字典放到市数组中
            [cityArr addObject:cityDic];
        }else if ([temp hasPrefix:@"    "]){
            // 先找到省字典
            NSMutableDictionary *proDic = [proArr lastObject];
            // 市数组
            NSMutableArray *cityArr = proDic[@"cityArr"];
            // 市字典
            NSMutableDictionary *cityDic = [cityArr lastObject];
            // 区数组
            NSMutableArray *districtArr = cityDic[@"districtArr"];
            // 添加
            [districtArr addObject:temp];
        }
    }
    
    // forin进行遍历
    
    for (NSMutableDictionary *dic in proArr) {
        NSLog(@"%@", dic[@"proName"]);
        NSMutableArray *cityArr = dic[@"cityArr"];
        for (NSMutableDictionary *cityDic in cityArr) {
            NSLog(@"%@",cityDic[@"cityName"]);
            NSMutableArray *districtArr = cityDic[@"districtArr"];
            for (NSMutableDictionary *districtDic in districtArr) {
                NSLog(@"%@", districtDic);
            }
        }
        
    }
    return 0;
}

OC数组和字典嵌套练习:省市区

将文件中的省市区读出来并放在数组和字典嵌套的数据结构中 有注释的版本: #import int main(int argc, const char * argv[]) { @autor...
  • Crow1108
  • Crow1108
  • 2015年08月22日 19:27
  • 1735

OC字典的使用省市区

首先我们需要一个大的数组,chinaArray,判断省名,市名,区名,如果字符串前没有空格则为省名,字符串前有一个空格并且没有两个空格则为市名,字符串前有两个空格则为区名。      如果为省名则定...
  • HongDoubb
  • HongDoubb
  • 2016年05月28日 09:43
  • 243

OC_省市区字典

// //  main.m //  OC05_省市区字典 // //  Created by dlios on 15-5-13. //  Copyright (c) 20...
  • super6kingl
  • super6kingl
  • 2015年05月14日 19:45
  • 653

玩转 IOS 开发 - block 使用详解

Block 是iOS在4.0之后新增的程式语法,在iOS SDK 4.0之后,block应用几乎无处不在。在其他语言中也有类似的概念称做闭包(closure),比如object C的好兄弟swift ...
  • liulanghk
  • liulanghk
  • 2015年06月05日 23:07
  • 17699

省市区字典类型--OC方法

我觉得字典问题有点类似于嵌套的问题,在解决问题前可以将相互之间的关系写出来再进行编写,这样会使思路更加清晰.在打印的时候就相当于剥皮,从外层开始一层层进行.希望对您有帮助...
  • Obses_sion
  • Obses_sion
  • 2015年07月22日 20:05
  • 468

OC用字典数组创建省市区

OC用字典数组创建省市区 //获取文件路径 NSString *path = @"/Users/lan/Desktop/ios开发/百度云同步盘/iOS学习/OC课程/练习/第七天/Creat...
  • WYHaiLSS
  • WYHaiLSS
  • 2015年12月26日 11:33
  • 165

oc的省市区放进一个数组

比较好的入门数组字典的题目. 题目要求将一个文件里面的省市区装入一个数组里. 首先我们要新创建一个工程并且将area.txt文件装入工程之中. 直接将文件拖动到工程名下 拖后就是这个页面,打钩...
  • czh11031
  • czh11031
  • 2015年12月23日 19:19
  • 134

OC数组和字典小项目_省市区

本篇博客主要内容是用数组和字典嵌套使用保存从文件中读取出来的省市区的名字,我的代码中有很多注释很适合新手学习.具体内容是用一个省的数组保存所有的省的字典,而省的字典包含省的名字和城市数组,城市数组包含...
  • qq_26872741
  • qq_26872741
  • 2015年12月03日 19:46
  • 324

ObjectC----字典类和集合类以及快速枚举和OC中的数组排序

// Create By 郭仔  2015年04月01日20:06:36 // 不可变字典     // 字典是适用于存放键值对的一种集合,里面的元素必须是对象类型   ...
  • guoxianzhuang
  • guoxianzhuang
  • 2015年04月01日 20:06
  • 5689

OC的语法简写

简写      OC的语法一直被认为比较麻烦,绝大多数的消息发送都带有很长的函数名。其实这是一把双刃剑,好的方面,它使得代码相当容易阅读,因为几乎所有的方法都是以完整的英语进行描述的,而且如果遵...
  • xwren362922604
  • xwren362922604
  • 2013年02月21日 09:46
  • 7653
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OC中字典的使用,数组的使用----省市区
举报原因:
原因补充:

(最多只允许输入30个字)