| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- //
- //
- //
- // Created by kimziv on 13-9-14.
- //
- #include "ChineseToPinyinResource.h"
- #include "HanyuPinyinOutputFormat.h"
- #include "PinyinFormatter.h"
- #include "PinyinHelper.h"
- #define HANYU_PINYIN @"Hanyu"
- #define WADEGILES_PINYIN @"Wade"
- #define MPS2_PINYIN @"MPSII"
- #define YALE_PINYIN @"Yale"
- #define TONGYONG_PINYIN @"Tongyong"
- #define GWOYEU_ROMATZYH @"Gwoyeu"
- @implementation PinyinHelper
- + (NSArray *)toHanyuPinyinStringArrayWithChar:(unichar)ch {
- return [PinyinHelper getUnformattedHanyuPinyinStringArrayWithChar:ch];
- }
- + (NSArray *)toHanyuPinyinStringArrayWithChar:(unichar)ch
- withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat {
- return [PinyinHelper getFormattedHanyuPinyinStringArrayWithChar:ch withHanyuPinyinOutputFormat:outputFormat];
- }
- + (NSArray *)getFormattedHanyuPinyinStringArrayWithChar:(unichar)ch
- withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat {
- NSMutableArray *pinyinStrArray =[NSMutableArray arrayWithArray:[PinyinHelper getUnformattedHanyuPinyinStringArrayWithChar:ch]];
- if (nil != pinyinStrArray) {
- for (int i = 0; i < (int) [pinyinStrArray count]; i++) {
- [pinyinStrArray replaceObjectAtIndex:i withObject:[PinyinFormatter formatHanyuPinyinWithNSString:
- [pinyinStrArray objectAtIndex:i]withHanyuPinyinOutputFormat:outputFormat]];
- }
- return pinyinStrArray;
- }
- else return nil;
- }
- + (NSArray *)getUnformattedHanyuPinyinStringArrayWithChar:(unichar)ch {
- return [[ChineseToPinyinResource getInstance] getHanyuPinyinStringArrayWithChar:ch];
- }
- + (NSArray *)toTongyongPinyinStringArrayWithChar:(unichar)ch {
- return [PinyinHelper convertToTargetPinyinStringArrayWithChar:ch withPinyinRomanizationType: TONGYONG_PINYIN];
- }
- + (NSArray *)toWadeGilesPinyinStringArrayWithChar:(unichar)ch {
- return [PinyinHelper convertToTargetPinyinStringArrayWithChar:ch withPinyinRomanizationType: WADEGILES_PINYIN];
- }
- + (NSArray *)toMPS2PinyinStringArrayWithChar:(unichar)ch {
- return [PinyinHelper convertToTargetPinyinStringArrayWithChar:ch withPinyinRomanizationType: MPS2_PINYIN];
- }
- + (NSArray *)toYalePinyinStringArrayWithChar:(unichar)ch {
- return [PinyinHelper convertToTargetPinyinStringArrayWithChar:ch withPinyinRomanizationType: YALE_PINYIN];
- }
- + (NSArray *)convertToTargetPinyinStringArrayWithChar:(unichar)ch
- withPinyinRomanizationType:(NSString *)targetPinyinSystem {
- NSArray *hanyuPinyinStringArray = [PinyinHelper getUnformattedHanyuPinyinStringArrayWithChar:ch];
- if (nil != hanyuPinyinStringArray) {
- NSMutableArray *targetPinyinStringArray = [NSMutableArray arrayWithCapacity:hanyuPinyinStringArray.count];
- for (int i = 0; i < (int) [hanyuPinyinStringArray count]; i++) {
-
- }
- return targetPinyinStringArray;
- }
- else return nil;
- }
- + (NSArray *)toGwoyeuRomatzyhStringArrayWithChar:(unichar)ch {
- return [PinyinHelper convertToGwoyeuRomatzyhStringArrayWithChar:ch];
- }
- + (NSArray *)convertToGwoyeuRomatzyhStringArrayWithChar:(unichar)ch {
- NSArray *hanyuPinyinStringArray = [PinyinHelper getUnformattedHanyuPinyinStringArrayWithChar:ch];
- if (nil != hanyuPinyinStringArray) {
- NSMutableArray *targetPinyinStringArray =[NSMutableArray arrayWithCapacity:hanyuPinyinStringArray.count];
- for (int i = 0; i < (int) [hanyuPinyinStringArray count]; i++) {
- }
- return targetPinyinStringArray;
- }
- else return nil;
- }
- + (NSString *)toHanyuPinyinStringWithNSString:(NSString *)str
- withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat
- withNSString:(NSString *)seperater {
- NSMutableString *resultPinyinStrBuf = [[NSMutableString alloc] init];
- for (int i = 0; i < str.length; i++) {
- NSString *mainPinyinStrOfChar = [PinyinHelper getFirstHanyuPinyinStringWithChar:[str characterAtIndex:i] withHanyuPinyinOutputFormat:outputFormat];
- if (nil != mainPinyinStrOfChar) {
- [resultPinyinStrBuf appendString:mainPinyinStrOfChar];
- if (i != [str length] - 1) {
- [resultPinyinStrBuf appendString:seperater];
- }
- }
- else {
- [resultPinyinStrBuf appendFormat:@"%C",[str characterAtIndex:i]];
- }
- }
- return resultPinyinStrBuf;
- }
- + (NSString *)getFirstHanyuPinyinStringWithChar:(unichar)ch
- withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat {
- NSArray *pinyinStrArray = [PinyinHelper getFormattedHanyuPinyinStringArrayWithChar:ch withHanyuPinyinOutputFormat:outputFormat];
- if ((nil != pinyinStrArray) && ((int) [pinyinStrArray count] > 0)) {
- return [pinyinStrArray objectAtIndex:0];
- }
- else {
- return nil;
- }
- }
- - (id)init {
- return [super init];
- }
- @end
|