您的位置:首页 > 移动开发 > IOS开发

ios开发系列之中文转拼音,去声调,首字母转大写

2015-10-13 19:42 393 查看
1) 声明一个为汉字的不可变字符串

NSString * str = @"这是一个汉字";


2) 将字符串转成c语言中的不可变字符串

CFStringRef strRef = (CFStringRef)str;


3) 将上述c中的不可变字符串转成c中可变的字符串

CFMutableStringRef mutableStrRef = CFStringCreateMutableCopy(NULL, 0, strRef);//第一个参数是内存分配器 NULL 默认系统提供的分配器   // 第二个参数定义当前字符串的长度 如果是0则表示无限制//    第三个参数就是得到的不可变字符串


4) 将上述c中的可变字符串转成拼音,同时在每个汉字之间生成一个空格

CFStringTransform(mutableStrRef, NULL, kCFStringTransformMandarinLatin, NO);//第一参数:得到的可变字符串// 第二个参数:转化的范围 一般NULL// 第三个参数是转化规则//第四个参数就是是否字符串反转


5) 去掉声调

CFStringTransform(mutableStrRef, NULL, kCFStringTransformStripDiacritics, NO);


6) 将转换后的c语言字符串,强制转换为NSString类型

NSString *newStr = (NSString *) mutableStrRef


7) 提取首字母作为新的字符串

NSString *firstLetter = [newStr substringToIndex:1];


8) 将首字母转成大写

NSString *upFirstLetter = [firstLetter uppercaseString];


转化规则有:

CF_EXPORT const CFStringRef kCFStringTransformStripCombiningMarks;
CF_EXPORT const CFStringRef kCFStringTransformToLatin;
CF_EXPORT const CFStringRef kCFStringTransformFullwidthHalfwidth;
CF_EXPORT const CFStringRef kCFStringTransformLatinKatakana;
CF_EXPORT const CFStringRef kCFStringTransformLatinHiragana;
CF_EXPORT const CFStringRef kCFStringTransformHiraganaKatakana;
CF_EXPORT const CFStringRef kCFStringTransformMandarinLatin;
CF_EXPORT const CFStringRef kCFStringTransformLatinHangul;
CF_EXPORT const CFStringRef kCFStringTransformLatinArabic;
CF_EXPORT const CFStringRef kCFStringTransformLatinHebrew;
CF_EXPORT const CFStringRef kCFStringTransformLatinThai;
CF_EXPORT const CFStringRef kCFStringTransformLatinCyrillic;
CF_EXPORT const CFStringRef kCFStringTransformLatinGreek;
CF_EXPORT const CFStringRef kCFStringTransformToXMLHex;
CF_EXPORT const CFStringRef kCFStringTransformToUnicodeName;
CF_EXPORT const CFStringRef kCFStringTransformStripDiacritics
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: