对中文字符进行排序

Objective-C学习——中文URL编码和解码      

其原理是将中文字符解码,然后进行排序。参考代码:

NSComparator comparator = ^(NSString *obj1, NSString *obj2){
    
    NSString *str1 = [obj1 stringByAddingPercentEscapesUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];
    NSString *str2 = [obj2 stringByAddingPercentEscapesUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];
    
    return [str1 compare:str2];
};

使用以上排序算法:

NSArray * arr = @[ @"通话",@"通只",@"a通话",@"b通只",@"你",@"人生",@"大海",@"春天里",@"里"];
NSArray * arr2 = [arr sortedArrayUsingComparator:comparator];
for (NSInteger a = 0; a < arr.count; a++) {
    NSLog(@"%@__%@", arr[a], arr2[a]);
}

结果是:

通话__春天里
通只__大海
a通话__里
b通只__你
你__人生
人生__通话
大海__通只
春天里__a通话
里__b通只


转载于:https://my.oschina.net/bieshixuan/blog/604403

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值