zoukankan      html  css  js  c++  java
  • 字符串数组排序/分组

    //获取字符串(或者汉字)的首字母

    -(NSString*)firstCharacterWithString:(NSString *)string

    {

        NSMutableString *str = [NSMutableString stringWithString:string];

        CFStringTransform((CFMutableStringRef)str, NULL, kCFStringTransformMandarinLatin, NO);

        CFStringTransform((CFMutableStringRef)str, NULL, kCFStringTransformStripDiacritics, NO);

        NSString *pingyin = [str capitalizedString];

        return [pingyin substringFromIndex:1];

    }

    //将字符串属猪按照元素首字母进行排序分组

    -(NSDictionary *)dictonaryOrderByCharaterWithOriginalArray:(NSArray *)array

    {

        if (array.count == 0) {

            return nil;

        }

        for (id obj in array) {

            if (![obj isKindOfClass:[NSString class]]) {

                return nil;

            }

        }

        UILocalizedIndexedCollation *indexedCollation = [UILocalizedIndexedCollation currentCollation];

        NSMutableArray *objects =[NSMutableArray arrayWithCapacity:indexedCollation.sectionTitles.count];

        for (int i = 0; i < indexedCollation.sectionTitles.count; i++) {

            NSMutableArray *array = [NSMutableArray array];

            [objects addObject:array];

            

        }

        NSMutableArray *keys = [NSMutableArray arrayWithCapacity:objects.count];

        

        //按字母顺序分组

        NSInteger lastIndex = -1;

        for (int i = 0; i < array.count; i ++) {

            NSInteger index = [indexedCollation sectionForObject:array[i] collationStringSelector:@selector(uppercaseString)];

            [[objects objectAtIndex:index]addObject:array[i]];

            lastIndex = index;

        }

        

        //去掉空数组

        for (int i = 0; i<objects.count; i++) {

            NSMutableArray *obj = objects[i];

            if (obj.count  == 0) {

                [objects removeObject:obj];

            }

        }

        

        //获取索引字母

        for (NSMutableArray *obj in objects) {

            NSString *str = obj[0];

            NSString *key = [self firstCharacterWithString:str];

            [keys addObject:key];

        }

        NSMutableDictionary *dic = [NSMutableDictionary dictionary];

        [dic setObject:objects forKey:keys];

        return dic;

    }

  • 相关阅读:
    Satellite Basics
    Antenna basics
    Installing a Sailor 900 VSAT
    Installing Intellian VSAT
    IPTV、DVB、OTT的区别
    STM32两种下载方式
    Postman 使用指南
    elasticsearch term 查询之一
    Elasticsearch -from + size设置
    TIMESTAMP和DATETIME的区别
  • 原文地址:https://www.cnblogs.com/PJXWang/p/5614832.html
Copyright © 2011-2022 走看看