iOS 汉字转拼音

在oc 之中的字符串为汉字的时候,我们常常要进行字符串比较,尤其是类似通讯录的项目,但是汉字不能比较,所以就要将汉字转化成为拼音后再进行比较,具体过程如下:

1.字符串转成带声调的拼音

//可变字符串 必须是可变字符串.
    NSMutableString *mutableString = [NSMutableString stringWithString:@"中国"];
    //转成带声调的拼音
    CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, false);
    NSLog(@"%@", mutableString);

   输出结果为: zhōng guó

2.字符串转成不带声调的拼音

    //转成没有声调的拼音
    CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformStripDiacritics, false);


   NSLog(@"%@", mutableString);
  输出结果为:zhong guo

注意:
1.这个方法必须先将不可变字符串转化为可变字符串才能将汉字转化成拼音.
2.此方法当遇到多音字的时候就不那么只能转化成为一种拼音

3.转化后的拼音之间会出现空格,把空格替换掉:

NSString *str = @"zhong guo";
    NSString *newstr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];

XXLazyKit中可调用

- (NSString *)pinyinString; //直接将文字转换成拼音
+ (instancetype)pinyinStringWithSting:(NSString *)string;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Core Foundation包含文字转拼音的相应方法,而且还支持声调。具体过程如下: 首先假设有一段文字NSSt...
    FMengz阅读 3,619评论 0 2
  • //获取拼音首字母(传入汉字字符串, 返回大写拼音首字母) (NSString *)firstCharactor:...
    爵笙彦阅读 3,878评论 0 0
  • 网上找到的一些小知识,记录一下。 //获取拼音字母(传入汉字字符串, 返回大写拼音字母) - (NSString ...
    等待_人阅读 3,184评论 0 0
  • 1.核心方法 参数一*:需要传入CFMutableStringRef类型的字符串, 这个字符串就是这里的主角, 想...
    GeekPwn_S阅读 2,361评论 0 1
  • 在ios开发中经常碰到做通讯录需要将汉字转成拼音的情况,以下就是我把汉字转成拼音的方法 用kCFStringTra...
    在这蓝色天空下阅读 3,218评论 0 4