IOS 汉字拼音排序

来源:互联网 发布:三菱编程器fx20p 编辑:程序博客网 时间:2024/05/24 00:17

在网上找了好久,没有找到IOS版拼音排序的好例子,在项目中用到了排序,总结出来之后,写了一个小例子供大家参考

-(NSMutableArray*) sortByPinyin:(NSMutableArray*)stringsToSort{//获取字符串中文字的拼音首字母并与字符串共同存放NSMutableArray *chineseStringsArray=[NSMutableArray array];for(int i=0;i<[stringsToSort count];i++){ChineseString *chineseString=[[ChineseString alloc]init];chineseString.string=[NSString stringWithString:[stringsToSort objectAtIndex:i]];if(chineseString.string==nil){chineseString.string=@"";}if(![chineseString.string isEqualToString:@""]){NSString *pinYinResult=[NSString string];for(int j=0;j<chineseString.string.length;j++){NSString *singlePinyinLetter=[[NSString stringWithFormat:@"%c",pinyinFirstLetter([chineseString.string characterAtIndex:j])]uppercaseString];pinYinResult=[pinYinResult stringByAppendingString:singlePinyinLetter];}chineseString.pinYin=pinYinResult;}else{chineseString.pinYin=@"";}[chineseStringsArray addObject:chineseString];}//Step3:按照拼音首字母对这些Strings进行排序NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"pinYin" ascending:YES]];[chineseStringsArray sortUsingDescriptors:sortDescriptors];// Step4:如果有需要,再把排序好的内容从ChineseString类中提取出来NSMutableArray *result=[NSMutableArray array];for(int i=0;i<[chineseStringsArray count];i++){[result addObject:((ChineseString*)[chineseStringsArray objectAtIndex:i]).string];}return result;}



例子链接

0 0
原创粉丝点击