对文件txt里的颜色名即颜色编码进行提取并处理保存
2015-11-12 13:56
351 查看
对文件txt里的颜色名即颜色编码进行提取并处理保存
crayons.txt里的内容
Almond #EED9C4Antique Brass #C88A65
Apricot #FDD5B1
Aquamarine #71D9E2
Asparagus #7BA05B
Atomic Tangerine #FF9966
Banana Mania #FBE7B2
Beaver #926F5B
Bittersweet #FE6F5E
Black #000000
Blizzard Blue #A3E3ED
Blue #0066FF
Blue Bell #9999CC
Blue Green #0095B6
Blue Violet #6456B7
Brick Red #C62D42
Brink Pink #FB607F
Brown #AF593E
Burnt Orange #FF7034
Burnt Sienna #E97451
Cadet Blue #A9B2C3
Canary #FFFF99
Caribbean Green #00CC99
Carnation Pink #FFA6C9
Cerise #DA3287
Cerulean #02A4D3
Chartreuse #FF9966
Chestnut #B94E48
Copper #DA8A67
Cornflower #93CCEA
Cotton Candy #FFB7D5
创建字符串用stringWithContentsOfFile方法,读取出文件里的字符串,但此时是一个长长的字符串,
然后用componentsSeparatedByString以"\n"对字符串进行解析, 返回一个字符串数组,
之后创建一个字典Dictionary, 遍历字符串数组,获得每一行的字符串,再用以"#"分割颜色名和对应的编码,分别存入字典的key和value中,
这样就得到了一个颜色字典了.
//获取文件路径 NSString *path = @"/Users/dllo/Desktop/OC作业/OC06_字典,数组嵌套练习/OC06_字典,数组嵌套练习/crayons.txt"; //以文件内容来初始化字符串: 参数说明: 1.路径 2.编码格式 3.错误信息 NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
//1、使用字典管理所有的颜色,即字典中存储的是多个键值对,颜色名称为key,16进制颜色值(不带#)是value。 //以换行符来分割整个字符串 生成行字符串数组 NSArray *colors =[str componentsSeparatedByString:@"\n"]; //定义一个字典来管理颜色 NSMutableDictionary *colorDic = [NSMutableDictionary dictionary]; //遍历数组内的每个元素(字符串中的每行/每个颜色值) for (NSString *color in colors) { //分割每行颜色名称和对应的16进制值 NSArray *array = [color componentsSeparatedByString:@"#"]; //颜色名为key, 颜色值为value //颜色名在array[0], 颜色值在数组array[1] [colorDic setObject:array[1] forKey:array[0]]; }
//2.使用一个新的字典管理颜色,对颜色进行分类管理,即:“A”,“B”,“C”…即这个字典包含多个键值对,key是26个字母,value是数组,数组里存放的是Color对象(包含name和colorValue)。需要自己创建Color类。 NSMutableDictionary *newDic = [NSMutableDictionary dictionary]; BOOL isExist = NO; //遍历上述字典 for (NSString *key in colorDic) { Color *color = [Color colorWithName:key andColorValue:[colorDic objectForKey:key]]; //获得当前颜色对象的名称的首字母 NSString *inital = [key substringToIndex:1]; //遍历新字典, 判断当前key是否存在 for (NSString *newKey in newDic) { if ([newKey isEqualToString:inital]) { isExist = YES; } } if (!isExist) { //如果不存在 则为该颜色创建一个新数组, 并用当前首字母作为key存入新字典 NSMutableArray *groupAray = [NSMutableArray array]; [newDic setObject:groupAray forKey:inital]; } [[newDic objectForKey:inital] addObject:color]; }
相关文章推荐
- LeetCode Range Sum Query - Immutable & Range Sum Query 2D - Immutable
- 找出互联网符合的产品实例
- curl
- linux学习笔记(2):linux下的常用编辑器
- 图的储存 模板
- Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法
- OPenCV相机标定函数
- su和sudo
- setColorFilter滤镜效果
- Python 最大公约数
- 微信企业号开发相关问题
- 手机自动化测试:appium源码分析之bootstrap三
- Linux 网桥配置命令:brctl
- spi 驱动工作流程
- ng-repeat 在angularJS中用法
- 字典排序法
- 日志记录——Log4Net
- asp.net发布webservice出现‘Could not write to output file ‘解决办法
- OpenReports中文支持方案
- 手机自动化测试:appium源码分析之bootstrap二