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