在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:@""];
可是替换后返回的是一个新的字符串,原来的字符串并没有改变!,以后就要使用新返回的字符串来进行运算!!!
虽有缺憾,可是还能够将就着使用!!!