oc 之中的 汉字字符串转化成为拼音 汉字字符串的排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010672206/article/details/47043539

在oc 之中的字符串为汉字的时候,我们常常要进行字符串比较,但是汉字不能比较,所以就要将汉字转化成为拼音,具体过程如下:

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

   结果为: xiǎo míng

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

输出结果为:xiao ming
   NSLog(@"%@", mutableString);

注意:这个方法必须先将不可变字符串转化为可变字符串才能将汉字转化成拼音.

还有就是,此方法有缺陷:当遇到多音字的时候就不那么只能了,只能转化成为一种拼音

除此之外:就是大家也看到了转化后的拼音之间会出现空格,所以你要替换空格:

NSString *str = @"xiao ming ming";
    NSString *newstr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];

但是替换后返回的是一个新的字符串,原来的字符串并没有改变!,以后就要使用新返回的字符串来进行运算!!!

虽有缺憾,但是还可以将就着使用!!!


猜你喜欢

转载自blog.csdn.net/u010672206/article/details/47043539
今日推荐