对中文字符进行排序

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通只


你可能感兴趣的:(对中文字符进行排序)