oc数组排序 及转换关系

来源:互联网 发布:卖家怎么淘宝客推广 编辑:程序博客网 时间:2024/05/18 01:27

       大家好,这是我第一次自己写一篇博客,我刚学习oc语言没有多久,下面是我对数组知识点排序方面的一些理解,有不对的地方,还请各位多多指正微笑



 // 1.整型数字变量 改为数字类型  注意语法格式

        int a = 10;
        NSNumber *n = [NSNumber numberWithInt:a];
        NSLog(@"%@",n);
        
        // 2.这是将整型数据改为字符串类型 , 注意格式 和后面的(占位符)。
        int a1 = 10;
        NSString *str = [NSString stringWithFormat:@"%d",a1];
        NSLog(@"%@",str);
        
        // 3.将数字类型 转为整型数字类型
        int num = [n intValue];
        NSLog(@"%d",num);
        
        
        // 4.下面有两个可变数组与不可变数组排序的实例比较
        // 4.1下面的打印结果是 125 23 32 345 45 这种方法是按照字符串比较首字母的方法依次排序 而且只能是升序
        // 注:字符串比较方法就类似于C语言中的 strcmp 方法 。
        NSArray *arr = [[NSArray alloc] initWithObjects:@"45",@"23",@"345",@"32",@"125", nil];
        NSArray *arr1 = [arr sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"%@",arr1);
        
        // 4.2下面的打印结果是 23 32 45 125 345 是属于数组内的字符串转为数值类型做比较后的结果
        // 注:如果在比较时不将其转换为 整型数字类型 它还会按照字符串比较方法进行比较
        NSArray *arr0 = [[NSArray alloc] initWithObjects:@"45",@"23",@"345",@"32",@"125", nil];
        NSArray *arr2 = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            if ([obj1 intValue] > [obj2 intValue]) {
                return 1l;
            }return 0l;
        }];
        NSLog(@"%@",arr2);
        
        // 下面两个可变数组比较方式 只是在内部将比较对象做以改变 但不改变其本身原始数据类型
        // 4.3下面这种方法打印结构为 123 23 34 456 567 这种方法是按照字符串比较首字母的方法依次排序 而且只能是升序
        NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"34",@"456",@"23",@"567",@"123", nil];
        [arr3 sortUsingSelector:@selector(compare:)];
        NSLog(@"%@",arr3);
        
        // 4.4下面这种方法打印结果为 23 34 123 456 567 属于按数字大小正常升序排列
        NSMutableArray *arr4 = [NSMutableArray arrayWithObjects:@"34",@"456",@"23",@"567",@"123", nil];
        [arr4 sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            if ([obj1 intValue] > [obj2 intValue] ) {
                return 1l;
            }return 0l;
        }];
        NSLog(@"%@",arr4);
        
        /**
         *  注意:1.在做题过程中要知道不可变数组是有返回值的,当你对其修改时,需要一个新的数组接受,这样是它与可变数组最大的区别
                 2.当你需要进行降序时,你只需将 > 改为 < 即可。
            重点:要记住两种比较方式的不同点以及它们语法的书写格式。
         */

0 0
原创粉丝点击