• 汉字转拼音 汉字排序功能


    .h文件

    #import <Foundation/Foundation.h>

     

    @interface ChineseTool : NSObject

     

    /**

    汉字转拼音

    *

    *  @param chinese         要转换的汉字

    *  @param stripDiacritics 是否需要音标

    *

    *  @return 拼音

    */

    + (NSString *)pinyinForChinese:(NSString *)chinese stripDiacritics:(BOOL)stripDiacritics;

     

    /**

     *  对汉字数组进行排序

     *

     *  @param chineseArr 汉字数组

     *

     *  @return 排好序的数组

     */

    + (NSArray *)sortForChineseArr:(NSArray *)chineseArr;

     

    @end

     

    .m文件

    #import "ChineseTool.h"

     

    @implementation ChineseTool

     

    + (NSString *)pinyinForChinese:(NSString *)chinese stripDiacritics:(BOOL)stripDiacritics

    {

        if ([chinese length]) {

            NSMutableString *ms = [[NSMutableString alloc] initWithString:chinese];

            if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformMandarinLatin, NO)) {

                if (stripDiacritics) {

                    if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformStripDiacritics, NO)) {

                        return ms;

                    }

                } else {

                    return ms;

                }

            }

        }

        return nil;

    }

     

    + (NSArray *)sortForChineseArr:(NSArray *)chineseArr

    {

        NSMutableArray *pinyinArr = [NSMutableArray arrayWithCapacity:0];

        for (NSString *str in chineseArr) {

            NSString *pinyin = [[self pinyinForChinese:str stripDiacritics:YES] stringByReplacingOccurrencesOfString:@" " withString:@""];

            [pinyinArr addObject:pinyin];

        }

        NSDictionary *dict = [NSDictionary dictionaryWithObjects:chineseArr forKeys:pinyinArr];

        NSArray *sortPinyinArr = [pinyinArr sortedArrayUsingSelector:@selector(compare:)];

        NSArray *chineseSortArr = [dict objectsForKeys:sortPinyinArr notFoundMarker:[NSNull null]];

        return chineseSortArr;

    }

  • 相关阅读:
    elasticsearch 调整参数 调参 -- 副本 分片 读写流程 -- elasticsearch配置
    对创新的理解 -- 价值共生、协同生长
    update_by_query ingest pipeline
    create index pattern Forbidden error
    apache转发规则 + nginx location 正则匹配经典案例
    拨测ip+port 告警 telnet nc
    configMap简单理解
    sidecar收集Tomcat日志-普通用户
    使用DBeaver连接pheonix
    bladex开发自己的服务不推送服务器的方法
  • 原文地址:https://www.cnblogs.com/bing-ge/p/4744722.html
Copyright © 2020-2023  润新知