IOS 汉字拼音排序

在网上找了好久,没有找到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;
}



例子链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值