iOS 开发系列之 字符串(汉字,日期)的比较排序
来源:互联网 发布:win7如何设置网络类型 编辑:程序博客网 时间:2024/05/01 13:10
2015-7-1日
在项目中当用户点击时需要对汉字和日期进行排序,是从服务器获取下来的数据,外层是数组包含字典,需要对字典里边的值进行排序。具体实现代码如下
在对汉字排序的时候也有采取取出汉字的首字母,将汉字转变为拼音,然后取出首字母,代码如下:
- (NSString *)firstCharactor:(NSString *)aString{ //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:aString]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO); //再转换为不带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO); //转化为大写拼音 NSString *pinYin = [str capitalizedString]; //获取并返回首字母 return [pinYin substringToIndex:1];}
/** * @method 排序(汉语拼音排序) * @params order 依照对象的哪个特性进行排序 传入需要排序key string name * @reult void */- (void)sortByOrder:(NSComparisonResult )order withName:(NSString *)name { /*降序和升序的话,就让无值或者乱值的当前数据处于最后(就是最小 defaultMinString) */ NSString *defaultMinString = @"a"; NSString *defaultMaxString = @"z"; switch (order) { case NSOrderedAscending: //升序a<b`` [self sortByString:NSOrderedAscending withDefaultName:defaultMinString andString:name]; break; case NSOrderedDescending: //降序a>b [self sortByString:NSOrderedDescending withDefaultName:defaultMaxString andString:name]; break; default: break; }}- (void)sortByString:(NSComparisonResult )order withDefaultName:(NSString *)defaultName andString:(NSString *)nameString { dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(globalQueue, ^{ [tableListArr sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { NSString *string1; if ([[obj1 valueForKey:nameString] isEqual:[NSNull null]]) { string1 = defaultName; }else { string1 = [obj1 valueForKey:nameString]; } NSString *string2; if ([[obj2 valueForKey:nameString] isEqual:[NSNull null]]) { string2 = defaultName; }else { string2 = [obj2 valueForKey:nameString]; } NSComparisonResult result = [string1 localizedCompare:string2]; return result == order; }]; dispatch_async(dispatch_get_main_queue(), ^{ [self.tableView reloadData]; }); });}
0 0
- iOS 开发系列之 字符串(汉字,日期)的比较排序
- ios 字符串比较 日期比较
- Java比较汉字字符串排序与C++比较汉字排序
- ios开发系列之排序算法
- iOS开发中遇到的,输入一个包含汉字的字符串,输出其汉字的拼音。(字符串中含有的汉字提取)
- iOS 日期的比较
- iOS日期的比较
- iOS日期的比较
- iOS开发之日期
- 日期字符串之间的比较
- 【iOS开发】字符串汉字转拼音
- ios 字符串的比较
- ios 字符串的比较
- ios 字符串的比较
- [LeetCode] Valid Anagram - 字符串排序比较系列
- [LeetCode] Valid Anagram - 字符串排序比较系列
- ios 获取汉字拼音的方法比较
- Collator类 比较字符串(汉字大小)
- assert()函数用法总结
- LeetCode Subsets II
- 第17周周三
- 一些有用的网站
- 基于android开发手机控制空调的程序(硬件+软件)
- iOS 开发系列之 字符串(汉字,日期)的比较排序
- How to update jQuery Mobile in Dreamweaver CS6
- Cordova插件开发
- Android OpenGL ES(九)----构建几何物体
- android中控件AutoCompleteView自动提示控件
- C++中string转为int (转)
- Java ClassLoader个人见解
- Majority Element
- 函数指针