OC算法 输出手机号码归属地

输出手机号码归属地

*1.读取文件中的数据

文件如下:

5582|1860101|010|北京市|北京联通GSM卡
5583|1860100|010|北京市|北京联通GSM卡
5584|1368141|010|北京市|北京移动神州行卡
5585|1860111|010|北京市|北京联通GSM卡
5586|1358198|010|北京市|北京移动动感地带卡
5587|1361139|010|北京市|北京移动预付费卡
5588|1361138|010|北京市|北京移动神州行卡
5591|1360110|010|北京市|北京移动全球通卡
5748|1364110|010|北京市|北京移动神州行卡
10186|1581584|020|广东省广州市|广东移动全球通卡
15046|1391897|021|上海市|上海移动全球通卡
17250|1502207|022|天津市|天津移动全球通卡
21137|1345272|023|重庆市万州|重庆移动大众卡
22700|1347812|024|辽宁省沈阳市|辽宁移动大众卡
24256|1377065|025|江苏省南京市|江苏移动全球通卡
26360|1898606|027|湖北省武汉市|湖北电信CDMA卡
28709|1860802|028|四川省成都市|四川联通GSM卡
30641|1552961|029|陕西省西安市|陕西联通GSM卡
31700|1563007|0310|河北省邯郸市|河北联通GSM卡
33360|1583396|0311|河北省石家庄市|河北移动全球通卡
34825|1508122|0312|河北省保定市|河北移动全球通卡
35363|1551235|0313|河北省张家口|河北联通GSM卡
37700|1331326|0316|河北省廊坊市|河北电信CDMA卡
43500|1350358|0358|山西省吕梁市|山西移动全球通卡
43908|1553625|0359|山西省运城市|山西联通GSM卡
44521|1335360|0370|河南省商丘市|河南电信CDMA卡
50078|1509369|0378|河南省开封市|河南移动全球通卡
53603|1583981|0398|河南省三门峡|河南移动全球通卡
53916|1335897|0410|辽宁省铁岭市|辽宁电信CDMA卡
55248|1554254|0411|辽宁省大连市|辽宁联通GSM卡
58618|1374272|0427|辽宁省盘锦市|辽宁移动全球通卡
58932|1554183|0429|辽宁省葫芦岛|辽宁联通GSM卡
60268|1340475|0431|吉林省长春市|吉林移动大众卡

文件结构:
 *手机ID | 手机号码前7 | 区号 | 归属地 | 手机卡类型

        NSString *savePath = @"/Users/students/Desktop/Info.txt";
        
        NSString *allContent = [[NSString alloc] initWithContentsOfFile:savePath encoding:NSUTF8StringEncoding error:nil];
        
        //NSLog(@"%@",allContent);//这里主要做一个查询,看看文件是否导入
        


 *2.解析数据

        //将文件中的字符串按照'\n'分开,也就是取出每一行
        NSArray *singleNum = [allContent componentsSeparatedByString:@"\n"];
        
        //创建一个字典,用来存储电话号码和归属地
        NSMutableDictionary *numberAndAttribution = [[NSMutableDictionary alloc] initWithObjects:nil forKeys:nil];
        
        for (id obj in singleNum) {
            
            //将每一行按照'|'分开,分别将手机号码前7位和归属地存入字典
            NSArray *takeApart = [obj componentsSeparatedByString:@"|"];
            
            [numberAndAttribution setObject:takeApart[3] forKey:takeApart[1]];
            
        }


 *3.根据输入的手机号码,输出归属地

         while (1) {//用一个死循环等待输入
        
            printf("\n******************************\n");
            printf("\n  欢迎使用手机号码归属地查询系统\n");
            printf("\n******************************\n");
            printf("请输入要查询的号码:\n");
            char input[100];
            scanf("%s",input);
            //将C字符串转化为OC字符串
            NSString *inputOC = [[NSString alloc]initWithCString:input encoding:NSUTF8StringEncoding];
            //根据key值查询Object
            if ([numberAndAttribution objectForKey:inputOC]) {
                NSLog(@"号码归属地是:%@",[numberAndAttribution objectForKey:inputOC]);
           
            }else {
                
                NSLog(@"该号码查找不到归属地");
            }
            
        }



你可能感兴趣的:(算法,NSString,字典,手机号码归属地)