OC中文比较大小
来源:互联网 发布:航天技术发展知乎 编辑:程序博客网 时间:2024/05/16 15:28
在oc之中的字符串为汉字的时候,我们常常要进行字符串比较,但是汉字不能比较,所以就要将汉字转化成为拼音,具体过程如下:
//可变字符串必须是可变字符串.
NSMutableString *mutableString = [NSMutableStringstringWithString:@"小明"];
//转成带声调的拼音
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 mingming";
NSString *newstr = [strstringByReplacingOccurrencesOfString:@" " withString:@""];
TransformChinese.h
#import <Foundation/Foundation.h>
@interface TransformChinese : NSObject
+(NSMutableString*)transformChinese:(NSMutableString *)str;
+(NSString*)transformChineseNsstring:(NSString *)str;
+(BOOL)compareChineseNsstring:(NSString *)str1 str2:(NSString *)str2;
+(BOOL)compareChinese:(NSMutableString *)str1 str2:(NSMutableString *)str2;
@end
TransformChinese.m
#import "TransformChinese.h"
@implementation TransformChinese
+(NSString *)transformChinese:(NSMutableString *)str{
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformToLatin, false);
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics, false);
return str;
}
+(NSString *)transformChineseNsstring:(NSString *)str{
NSMutableString *str1 =[[NSMutableStringalloc]initWithString:str];
CFStringTransform((CFMutableStringRef)str1,NULL, kCFStringTransformToLatin, false);
CFStringTransform((CFMutableStringRef)str1,NULL, kCFStringTransformStripDiacritics, false);
return str1;
}
+(BOOL)compareChineseNsstring:(NSString *)str1 str2:(NSString *)str2{
NSString *str11 = [selftransformChineseNsstring:str1];
NSString *str21 = [selftransformChineseNsstring:str2];
if ([str11 compare:str21] ==NSOrderedDescending) {
return YES;
}
else{
return NO;
}
}
+(BOOL)compareChinese:(NSMutableString *)str1 str2:(NSMutableString *)str2{
NSString *str11 = [selftransformChinese:str1];
NSString *str21 = [selftransformChinese:str2];
if ([str11 compare:str21] ==NSOrderedDescending) {
return YES;
}
else{
return NO;
}
}
@end
- OC中文比较大小
- java中文词语大小比较
- OC---分数的加、减、乘、除、比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- 比较大小
- zoj3537cake【最优三角剖分+凸包】
- PHP访问MySql数据库 初级篇
- WEB漏洞挖掘技术
- python网页爬虫之列车时刻表的抓取-完整的python脚本
- ListView中固定item的高度
- OC中文比较大小
- Q_PROPERTY 类型是指针
- Eclipse的Git插件Egit: merge合并冲突具体解决方法
- 生成图片,由Base64生成
- 正版photo shop CS6破解方法
- 开始讨厌现在这种生活
- PHP 性能优化
- redis.conf 配置项说明
- 数字在排序数组中出现的次数