1. 程式人生 > >iOS漢語轉拼音以及按照拼音排序

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 *[email protected]"我是漢字";
  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陣列按中文關鍵字以字母序排序

參考連結: