首页 > 代码库 > 【学习ios之路:Objective-C】数组,字符串,字典的总和练习

【学习ios之路:Objective-C】数组,字符串,字典的总和练习

①.实现方法:13个人,3个人一组,用一个大数组来管理每一个分组.

    
        //1.原数组  
        NSArray *array = @[@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12,@13];
        
        //2.原数组个数
        NSInteger count = [array count];
        //3.新建一个可变的数组1.
        NSMutableArray *newArray = [[NSMutableArray alloc] init];
        //4.循环
        for (NSInteger i = 0;i < count; i++)
        {
        
            //判断每3个,初始化一个可变数组2
            if (0 == i % 3) {
                NSMutableArray *newArray1 = [[NSMutableArray alloc] initWithCapacity:1];
                //将可变数组2添加到可变数组1中.
                [newArray addObject:newArray1];
                [newArray1 release];
               }

        //获取可变数组1中的最后一个元素,即可变数组2.
        //给可变数组2添加元素
        [[newArray lastObject] addObject:array[i]];
        }      
        //输出
        NSLog(@"%@",newArray);
        [newArray release];
        

②.   处理?工程?文件crayons.txt中的?文本信息,?文本内容是关于颜?色的,每?行都是?一 个颜?色的信息,例如:Almond #EED9C4,前?一个字符串是颜?色的名称,后?一 个字符串是颜?色的16进制?色值,处理?文本完成如下需求:
         1、使?用字典管理所有的颜?色,即字典中存储的是多个键值对,颜?色名称为 key,16进制颜?色值(不带#)是value。
         2、取出所有的key,升序排列。
         3、取出所有的value,按照排序后的key排列。
         4、使?用?一个新的字典管理颜?色,对颜?色进?行分类管理,即:“A”,“B”,“C”... 即这个字典包含多个键值对,key是26个字?母,value是数组,数组?里存放的是 Color对象(包含name和colorValue)。需要?自?己创建Color类。
实现如下:

1.crayons.txt中代码如下

Almond #EED9C4
Antique 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
Cranberry #DB5079
Dandelion #FED85D
Denim #1560BD
Desert Sand #EDC9AF
Eggplant #614051
Electric Lime #CCFF00
Fern #63
具体代码如下:

     //获取文件路径
    NSString *filePath = @"/Users/Object-c日常作业/crayons.txt";//文件地址
    //读取文件中的字符串
    NSString *oldString = [NSString stringWithContentsOfFile:                                filePath encoding:NSUTF8StringEncoding error:nil];
    //先对文件进行操作去除每一行的内容.
    NSArray *array = [oldString componentsSeparatedByString:@"\n"];
    
        
    // 1、使?用字典管理所有的颜?色,即字典中存储的是多个键值对,                        颜?色名称为 key,16进制颜?色值(不带#)是value。
    //初始化一个字典
        NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
    //遍历数组中的每一行
        for (NSString *newString in array) {
            //对每一行进行分割,返回数组
            NSArray *arr = [newString componentsSeparatedByString:@" #"];
            //将数组中的值取出来,添加到数据字典.
            [dictionary setObject:arr[1] forKey: arr[0]];
        }

      //2、取出所有的key,升序排列。
       
        NSArray *allKey = [dictionary allKeys];
        NSArray *newKey = [allKey sortedArrayUsingComparator:^(id obj1 ,id obj2) {
                return [(NSString *)obj1 compare :(NSString *)obj2];
            }];
       
        NSLog(@"--------%@",newKey);
       
        //3.取出所有的value,按照排序后的key排列。
        //取出所有的value值
        NSMutableArray *allValue = http://www.mamicode.com/[[NSMutableArray alloc] init];>color对象属性如下:

@property (nonatomic, retain) NSString *colorName;
@property (nonatomic, retain) NSString *colorCode;


【学习ios之路:Objective-C】数组,字符串,字典的总和练习