OC-可变数组-可变字典嵌套(练习-省市区)

原创 2015年07月07日 20:20:02

给一个txt文档,格式为:省名前无空格, 市名前两个空格, 区名前四个空格.

文档如下图


首先要理清组数和字典的框架.实现代码如下


//
//  main.m
//  省市区
//
//  Created by dllo on 15/7/3.
//  Copyright (c) 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSError *error = nil;
        NSString *string = [NSString stringWithContentsOfFile:@"/Users/dllo/Desktop/课程代码/OC代码/省市区_班级封装作业/省市区/省市区/area.txt" encoding:NSUTF8StringEncoding error:&error];
//        NSLog(@"%@", string);
        
        NSArray *array = [string componentsSeparatedByString:@"\n"];
        
        /* 1.总数组, 对象:字典 */
        NSMutableArray *headArr = [NSMutableArray array];
        for (NSString *temp in array) {
            if (![temp hasPrefix:@" "]) {
                /* 2.总字典, key值"省名", 对应对象:省, key值"市", 对应对象: 数组 */
                NSMutableDictionary *proDic = [NSMutableDictionary dictionary];
                [proDic setObject:temp forKey:@"省名"];
                /* 3.市数组, 对象: 字典 */
                NSMutableArray *cityArr = [NSMutableArray array];
                [proDic setObject:cityArr forKey:@"市"];
                [headArr addObject:proDic];
            }
            else if (![temp hasPrefix:@"    "])
            {
                /* 4.字典,  key值"市名", 对应对象:市, key值"区", 对应对象: 数组*/
                NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
                [cityDic setObject:temp forKey:@"市名"];
                /* 5.区数组, 对象:区 */
                NSMutableArray *districtArr = [NSMutableArray array];
                [cityDic setObject:districtArr forKey:@"区"];
                
                NSMutableDictionary *proDic = [headArr lastObject];/* 最后一个省 */
                NSMutableArray *cityArr = [proDic objectForKey:@"市"];/* 最后一个省对应的市 */
                
                [cityArr addObject:cityDic];
            }
            else
            {
                NSMutableDictionary *proDic = [headArr lastObject]; /* 获取最后的省字典 */
                
                NSMutableArray *cityArr = [proDic objectForKey:@"市"];/* 获取市的数组 */
                
                NSMutableDictionary *cityDic = [cityArr lastObject];/* 获取市字典 */
               
                NSMutableArray *districtArr = [cityDic objectForKey:@"区"]; /* 获取区的数组 */
            
                [districtArr addObject:temp];/* 把区名加到数组中 */
            }
        }
        
        /* 遍历输出 */
        for (NSMutableDictionary *proDic in headArr) {
            NSLog(@"%@", [proDic objectForKey:@"省名"]);
            NSMutableArray *cityArr =[proDic objectForKey:@"市"];
            for (NSMutableDictionary *cityDic in cityArr) {
                NSLog(@"%@", [cityDic objectForKey:@"市名"]);
                NSMutableArray *districtArr = [cityDic objectForKey:@"区"];
                for (NSString *dis in districtArr) {
                    NSLog(@"%@", dis);
                }
            }
        }
    }
    return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

NSArray,NSDictionary的常用方法与可变数组可变字典的常用方法

-- NSArray 1. objectAtIndex:index    访问数组中某个元素 NSArray *array = @[@"元素1", @"元素2"]; NSLog(@"...
  • Summer_shining
  • Summer_shining
  • 2016年12月29日 11:20
  • 1221

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

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

OC语言-字典与可变字典的定义及字典的嵌套

一、字典的定义 不可变字典 1.NSDictionary(不可变字典), NSMutableDictionary(可变字典)是由键-值对组成的数据集合。 2.通过key(键),查找对应value(值)...
  • zouxianm
  • zouxianm
  • 2015年07月27日 18:56
  • 2378

OC-省市区字典数组

省市区数组NSString *path=@"/Users/dlios/Desktop/笔记/oc笔记/OC6-省市区字典数组/OC6-省市区字典数组/area.txt"; // 根据路径产生相...
  • muran33
  • muran33
  • 2015年07月23日 21:01
  • 149

java中的可变数组

本文转自:https://www.w3cschool.cn/java/java-variable-length-arrays.html Java 可变长度数组 由 lala100 创建,最...
  • bbc955625132551
  • bbc955625132551
  • 2017年09月13日 10:21
  • 402

4,Swift可变数组的定义,初始化,修改元素值

Swift可变数组的定义,初始化,修改元素的值,对比数据等
  • wang6177
  • wang6177
  • 2017年07月26日 18:17
  • 1192

数组:可变数组和不可变数组

1,不可变数组:类:NSArry //对象初始化方法 1> NSArray *arr1 = [[NSArray alloc]initWithObjects:@”one”,@”two”,@”...
  • GodBlessMyParents
  • GodBlessMyParents
  • 2015年08月07日 16:29
  • 790

ios可变数组NSMutableArray和不可变数组NSArray的区别

1、对比 NSArray 是一个静态数组,不修改该数组中的元素,也不能添加元素。 NSMutableArray则对应的可修改、可添加元素。 2、NSMutableArra...
  • BlackWolfSky
  • BlackWolfSky
  • 2016年04月13日 20:00
  • 1190

java中怎么实现可变数组?

既然要可变,为什么用数组呢,用容器多好。 用arraylist或者vector最好。 import   java.util.*  ; vector存储同类对象,  arrayliat存储不同类对...
  • duanyipeng
  • duanyipeng
  • 2012年08月10日 14:32
  • 7997

带分区的省市区字典数组

准备工作不再赘述一个tableView TitleForHeader为省名,分区个数为省的个数,每个分区中的cell.textLabel.text为省对应的市名MainViewController....
  • muran33
  • muran33
  • 2015年08月12日 22:23
  • 275
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OC-可变数组-可变字典嵌套(练习-省市区)
举报原因:
原因补充:

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