将汉字转换为拼音截取拼音首字母根据字母排序

Posted PinkJoker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将汉字转换为拼音截取拼音首字母根据字母排序相关的知识,希望对你有一定的参考价值。

//将汉字转换成拼音

+ (NSString *)convertNameToCharactor:(NSString *)name

    //转成了可变字符串

    NSMutableString *str = [NSMutableString stringWithString:name];

    //先转换为带声调的拼音

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

    //再转换为不带声调的拼音

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

    //转化为大写拼音

    NSString *pinYin = [str capitalizedString];

    //获取并返回首字母

    return pinYin;

 

//截取拼音的首字母

+ (NSString *)extractFirstABCWithCharactor:(NSString *)name

   NSString * pinyin = [self convertNameToCharactor:name];

    if(pinyin.length > 0)

        return [pinyin substringWithRange:NSMakeRange(0, 1)];

   

    return nil;

    //排序,排序的根据是字母

    NSComparator cmptr = ^(id obj1, id obj2)

        if ([obj1 characterAtIndex:0] > [obj2 characterAtIndex:0])

            return (NSComparisonResult)NSOrderedDescending;

       

 

        if ([obj1 characterAtIndex:0] < [obj2 characterAtIndex:0])

            return (NSComparisonResult)NSOrderedAscending;

       

        return (NSComparisonResult)NSOrderedSame;

    ;

//letterArray 为首字母的数组

  self.letterArray = [[NSMutableArray alloc]initWithArray:[self.letterArray sortedArrayUsingComparator:cmptr]];

以上是关于将汉字转换为拼音截取拼音首字母根据字母排序的主要内容,如果未能解决你的问题,请参考以下文章

js中如何根据汉字生成拼音首字母

IOS通讯录分区section汉字转拼音截取首字母

如何获取汉字拼音首字母?一般用于通讯录

oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)

java怎么根据汉字获取字的拼音首字母

C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母