主要思路:分解省、市、區(qū),首先有一個(gè)最大的數(shù)組,是存放各個(gè)省的,省的數(shù)組里有省字典,省字典里有兩個(gè)鍵值對(duì),(provinceName:“北京”;cityArray[])。將省字典作為省數(shù)組的對(duì)象添加到省數(shù)組里。城市數(shù)組有兩個(gè)鍵值對(duì)(cityName:“北京市”;areaArray:[])與省數(shù)組類似。
#import <Foundation/Foundation.h>
#import "Log.h"
int main(int argc, const char * argv[]) {
NSMutableArray *provinceArray = [NSMutableArray array];
//加載文件得到字符串
//參數(shù)1:文件路徑
//參數(shù)2:編碼格式
//參數(shù)3:錯(cuò)誤信息
NSString *contentString = [NSString stringWithContentsOfFile:@"/Users/lanou3g/Downloads/area.txt" encoding:NSUTF8StringEncoding error:nil];
//NSLog(@"%@",contentString);
//以換行符分割字符串,得到每一行的字符串內(nèi)容
NSArray *lineArray = [contentString componentsSeparatedByString:@"\n"];
for (NSString *lineString in lineArray) {
//前綴不是空格的話為省名
if (![lineString hasPrefix:@" "]) {
//創(chuàng)建一個(gè)省份字典
NSMutableDictionary *provinceDic = [NSMutableDictionary dictionary];
//省份字典添加鍵值對(duì)(provinceName:省份名)
[provinceDic setObject:lineString forKey:@"provinceName"];
//創(chuàng)建一個(gè)城市數(shù)組(用于后面存儲(chǔ)城市字典)
NSMutableArray *cityArray = [NSMutableArray array];
//添加鍵值對(duì)(cityArray:城市數(shù)組)
[provinceDic setObject:cityArray forKey:@"cityArray"];
//將省字典添加到省數(shù)組中
[provinceArray addObject:provinceDic];
}
else if (![lineString hasPrefix:@" "]){
//前綴有空格且不是4個(gè)空格的話為城市名
//當(dāng)讀取到城市名的時(shí)候需要找到該城市所屬的省份(ps:當(dāng)前省份數(shù)組中最后一個(gè)元素就是當(dāng)前城市所屬省份)
NSMutableDictionary *provinceDic = [provinceArray lastObject];
NSMutableArray *cityArray = [provinceDic objectForKey:@"cityArray"];
//創(chuàng)建一個(gè)城市字典
NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];
//添加鍵值對(duì)(cityName:城市名)
[cityDic setObject:lineString forKey:@"cityName"];
//創(chuàng)建地區(qū)數(shù)組(ps:后面用于存儲(chǔ)地區(qū)名稱)
NSMutableArray *areaArray = [NSMutableArray array];
//添加鍵值對(duì)(areaArray:地區(qū)數(shù)組)
[cityDic setObject:areaArray forKey:@"areaArray"];
//將城市字典存入到對(duì)應(yīng)的城市數(shù)組中
[cityArray addObject:cityDic];
}else{
//前綴有空格且有4個(gè)空格的為地區(qū)名
//獲取當(dāng)前地區(qū)所屬省份
NSMutableDictionary *provinceDic = [provinceArray lastObject];
//獲取該省份的城市數(shù)組
NSMutableArray *cityArray = [provinceDic objectForKey:@"cityArray"];
//從當(dāng)前城市數(shù)組中獲取當(dāng)前地區(qū)所屬的城市
NSMutableDictionary *cityDic = [cityArray lastObject];
// 獲取該城市的地區(qū)數(shù)組
NSMutableArray *areaArray = [cityDic objectForKey:@"areaArray"];
//將地區(qū)名存入該地區(qū)數(shù)組
[areaArray addObject:lineString];
}
}
//遍歷省數(shù)組找到每一個(gè)省字典
for (NSMutableDictionary *provinceDic in provinceArray) {
NSLog(@"省份:%@",[provinceDic objectForKey:@"provinceName"]);
//遍歷城市數(shù)組,根據(jù)省字典取出城市數(shù)組
for (NSMutableDictionary *cityDic in [provinceDic objectForKey:@"cityArray"]) {
NSLog(@"城市:%@",[cityDic objectForKey:@"cityName"]);
for (NSString *areaName in [cityDic objectForKey:@"areaArray"]) {
NSLog(@"地區(qū):%@",areaName);
}
}
}
//遇到數(shù)組就遍歷,遇到字典就根據(jù)鍵取值
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。