zoukankan      html  css  js  c++  java
  • iOS 数组内中英文混合排序

    NSInteger sortObjects(id obj1, id obj2,void *context)
    {
        NSMutableString * str1 = [[NSMutableString alloc]initWithString:obj1];
        if (CFStringTransform((__bridge CFMutableStringRef)str1, 0, kCFStringTransformMandarinLatin, NO)) {
        }
        
        NSMutableString * str2 = [[NSMutableString alloc]initWithString:obj2];
        if (CFStringTransform((__bridge CFMutableStringRef)str2, 0, kCFStringTransformMandarinLatin, NO)) {
        }
        return [str1 localizedCompare:str2];
    }
    //先转为拼音,然后再进行排序。上面是进行转拼音,然后再排序的过程。
    
    [otherNameArr sortUsingFunction:sortObjects context:NULL];//数组进行调用。
    
    然后就完了。得到的数组就是从A~Z的过程了。
    

      例子:

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        NSMutableArray * arr = [NSMutableArray arrayWithObjects:@"中文",@"linxl",@"唐唐唐",@"abc", nil];
        [arr sortUsingFunction:sortObjects context:NULL];
        NSLog(@"arr - %@",arr);
    }
    
    NSInteger sortObjects(id obj1, id obj2,void *context)
    {
        NSMutableString * str1 = [[NSMutableString alloc]initWithString:obj1];
        if (CFStringTransform((__bridge CFMutableStringRef)str1, 0, kCFStringTransformMandarinLatin, NO)) {
        }
        
        NSMutableString * str2 = [[NSMutableString alloc]initWithString:obj2];
        if (CFStringTransform((__bridge CFMutableStringRef)str2, 0, kCFStringTransformMandarinLatin, NO)) {
        }
        return [str1 localizedCompare:str2];
    }
    

      打印:

    2016-04-26 16:51:15.350 dd[65248:767376] arr - (
        abc,
        linxl,
        "U5510U5510U5510",
        "U4e2dU6587"
    

      

  • 相关阅读:
    Redis (error) NOAUTH Authentication required.问题
    C# File() 方法 contentType参数取值
    Java常用快捷键汇总(杂乱无章,持续更新)
    VUE项目发布至IIS(不涉及代理)
    js的休眠实现---sleep()
    Oracle 分页
    winform Panel设定 按钮显示位置
    Chart控件绘制实时折线图表——Spline
    .NET打包合并dll方法
    ComboBox绑定键值对
  • 原文地址:https://www.cnblogs.com/tanglimei/p/5435567.html
Copyright © 2011-2022 走看看