在写通讯录时经常需要对人名进行 A->Z的排序,在网上已有好多demo,有朋友说使用 NSString的 localizedCompare 方法可以实现字符串比较,在通过数组的sortedArrayUsingComparator方法排序即可,小菜也做了尝试,结果未能如预期所想。
下面来讲讲小菜的做法吧:
1.准备获取汉字首字母的开源库,NSString + pinyin ,在 github 上有大把,需要请自行下载
2.使用递归对汉字字符串排序……开始吧,请看代码
//递归方法, 逐字取首字母排序
-(NSComparisonResult)compare:(NSString *)str1 string:(NSString *)str2
{
NSString *ch1 = [str1 getFirstLetter]; //调用开源库获取首字母
NSString *ch2 = [str2 getFirstLetter]; //调用开源库获取首字母
NSComparisonResult result = [ch1 localizedCompare:ch2];
if (result == NSOrderedSame)