iOS漢語轉拼音以及按照拼音排序
阿新 • • 發佈:2019-01-04
在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
3、按照拼音排序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 }];
上面的方法都是用來將漢字轉成拼音的,如果需要按照漢字的拼音排序的話,可以按照上面轉換之後的拼音排序即可。
但實際上,如果不需要轉換之後的拼音的話,可以直接使用iOS系統提供的方法實現排序,最關鍵的方法為localizedCompare方法。
localizedCompare
具體說明可以參考iOS陣列按中文關鍵字以字母序排序
參考連結: