// // ChineseString.m // https://github.com/c6357/YUChineseSorting // // Created by BruceYu on 15/4/19. // Copyright (c) 2015年 BruceYu. All rights reserved. // #import "JXChatChineseString.h" @implementation JXChatChineseString #pragma mark - 返回tableview右方 indexArray +(NSMutableArray*)IndexArray:(NSArray*)stringArr { NSMutableArray *tempArray = [self ReturnSortChineseArrar2:stringArr]; NSMutableArray *A_Result = [NSMutableArray array]; NSString *tempString ; for (NSString* object in tempArray) { NSString *pinyin = [((JXChatChineseString*)object).pinYin substringToIndex:1]; //不同 if(![tempString isEqualToString:pinyin]) { // NSLog(@"IndexArray----->%@",pinyin); [A_Result addObject:pinyin]; tempString = pinyin; } } return A_Result; } #pragma mark - 返回联系人 +(NSMutableArray*)LetterSortArray:(NSArray*)stringArr { NSMutableArray *tempArray = [self ReturnSortChineseArrar:stringArr]; NSMutableArray *LetterResult = [NSMutableArray array]; NSMutableArray *item = [NSMutableArray array]; NSString *tempString; //拼音分组 for (NSString* object in tempArray) { NSString *pinyin = [((JXChatChineseString*)object).pinYin substringToIndex:1]; NSString *string = ((JXChatChineseString*)object).string; memberData *model = ((JXChatChineseString*)object).dataM; NSDictionary *dict = @{@"title":string,@"model":model}; //不同 if(![tempString isEqualToString:pinyin]) { //分组 item = [NSMutableArray array]; [item addObject:dict]; [LetterResult addObject:item]; //遍历 tempString = pinyin; }else//相同 { [item addObject:dict]; } } return LetterResult; } +(NSMutableArray*)ReturnSortChineseArrar2:(NSArray*)stringArr { //获取字符串中文字的拼音首字母并与字符串共同存放 NSMutableArray *chineseStringsArray=[NSMutableArray array]; for(int i=0;i<[stringArr count];i++) { JXChatChineseString *chineseString = [[JXChatChineseString alloc]init]; chineseString.string = [NSString stringWithString:[stringArr objectAtIndex:i]]; //chineseString.string = [NSString stringWithFormat:@"%@",dict.userNickName]; //chineseString.dataM = [stringArr objectAtIndex:i]; if(chineseString.string == nil){ chineseString.string = @""; } //去除两端空格和回车 chineseString.string = [chineseString.string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //这里我自己写了一个递归过滤指定字符串 RemoveSpecialCharacter chineseString.string = [JXChatChineseString RemoveSpecialCharacter:chineseString.string]; // NSLog(@"string====%@",chineseString.string); //判断首字符是否为字母 NSString *regex = @"[A-Za-z]+"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex]; NSString *initialStr = [chineseString.string length]?[chineseString.string substringToIndex:1]:@""; if ([predicate evaluateWithObject:initialStr]) { NSLog(@"chineseString.string== %@",chineseString.string); //首字母大写 chineseString.pinYin = [chineseString.string capitalizedString] ; }else{ if(![chineseString.string isEqualToString:@""]){ NSString *pinYinResult = [NSString string]; for(int j=0;j%@",((JXChatChineseString*)[tempArray objectAtIndex:i]).string); } return result; } //过滤指定字符串 里面的指定字符根据自己的需要添加 过滤特殊字符 +(NSString*)RemoveSpecialCharacter: (NSString *)str { NSRange urgentRange = [str rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: @",.?、 ~¥#&<>《》()[]{}【】^@/£¤|§¨「」『』¢¬ ̄~@#&*()——+|《》$_€"]]; if (urgentRange.location != NSNotFound) { return [self RemoveSpecialCharacter:[str stringByReplacingCharactersInRange:urgentRange withString:@""]]; } return str; } @end