iOS汉语转拼音以及按照拼音排序

在iOS中汉语转拼音可以使用系统提供的方法,也可以使用第三方库来实现,但是网上说使用系统方法实现的话性能会比较差,此处只是提供方法,至于选择使用哪种方法,自己看情况而定。

1、系统方法

主要使用到了方法CFStringTransform

NSString *hanziText = @"我是汉字";  
if ([hanziText length]) {  
    NSMutableString *ms = [[NSMutableString alloc] initWithString:hanziText];  
    if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformMandarinLatin, NO)) {  
        NSLog(@"pinyin: %@", ms);  
    }  
    if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformStripDiacritics, NO)) {  
        NSLog(@"pinyin: %@", ms);  
    }  
}  

2、第三方库 PinYin4Objc

NSString *sourceText=@"我是汉字";
  HanyuPinyinOutputFormat *outputFormat=[[HanyuPinyinOutputFormat alloc] init];
  [outputFormat setToneType:ToneTypeWithoutTone];
  [outputFormat setVCharType:VCharTypeWithV];
  [outputFormat setCaseType:CaseTypeLowercase];    
  [PinyinHelper toHanyuPinyinStringWithNSString:sourceText 
                     withHanyuPinyinOutputFormat:outputFormat 
                                     withNSString:@" " 
                                     outputBlock:^(NSString *pinYin) {
      _outputTv.text=pinYin; //update ui

   }];


3、按照拼音排序

上面的方法都是用来将汉字转成拼音的,如果需要按照汉字的拼音排序的话,可以按照上面转换之后的拼音排序即可。

但实际上,如果不需要转换之后的拼音的话,可以直接使用iOS系统提供的方法实现排序,最关键的方法为localizedCompare方法。

localizedCompare
具体说明可以参考 iOS数组按中文关键字以字母序排序


参考链接:

iOS数组按中文关键字以字母序排序

iOS汉字转拼音第三方库

iOS-使用CFStringTransform将汉字转换为拼音



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值