iOS学习笔记之字典排序
来源:互联网 发布:java从文件读取字符串 编辑:程序博客网 时间:2024/06/05 02:17
有时候拼接参数会用到字典传过来的参数而且是要排序的,下面我们看看应该怎么去做!
NSDictionary *params = @{ @"name":@"LinH", @"hometown":@"Dongying", @"userID":@"330909199301271234", @"phone":@"18814868888" };
这个参数字典中一共有4个key:name、hometown、userID、phone。
我们该怎么样把这四个字符串按升序排列呢?
首先我们定义一个数组,存储字典中的所有key值:
NSArray *keyArray = [params allKeys];
接下来我们定义一个排序数组,存储排序好之后的key值
NSArray *sortArray = [keyArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { return [obj1 compare:obj2 options:NSNumericSearch]; }];
sortedArrayUsingComparator方法是苹果为我们提供的一个数组排序方法,利用block语法来完成排序功能。
而这时,我们排序好的key值,已经按顺序存储在sortArray数组中,这时我们再创建一个数组,来按升序存储key对应的Value,通过遍历sortArray的方法。
NSMutableArray *valueArray = [NSMutableArray array]; for (NSString *sortString in sortArray) { [valueArray addObject:[params objectForKey:sortString]]; }
现在我们有两个数组,分别对应升序排序的key和value,所以再创建一个keyValue的数组来存储每一个key和value的格式。
NSMutableArray *signArray = [NSMutableArray array]; for (int i = 0; i < sortArray.count; i++) { NSString *keyValueStr = [NSString stringWithFormat:@"%@:%@",sortArray[i],valueArray[i]]; [signArray addObject:keyValueStr]; }
最后的一步,就是用“,”把每个字符串拼接起来,很简单。
NSString *sign = [signArray componentsJoinedByString:@","]; return sign;
这时,字符串sign里存储的就是要求我们完成的,没有进行MD5校验的签名字符串了,可以打印出来看一下。
[24923:3184830] hometown:Dongying,name:LinH,phone:18814868888,userID:330909199301271234
可以看到hometown,name,phone,userID已经按首字母排序并且完成拼接。所以字典的排序我们就讲到这里,MD5加密下一篇再来讲述。
阅读全文
0 0
- iOS学习笔记之字典排序
- python 学习笔记之字典
- Python学习笔记之字典
- python 学习笔记之字典
- c#之字典学习笔记
- Python学习笔记(一)字典排序
- iOS开发笔记之元素为字典的数组,按元素的value排序
- ios学习笔记之字典(NSDictionary)对象相应方法的用途
- iOS -- 字典遍历排序
- iOS:字典数组排序
- iOS -- 字典遍历排序
- Symbian学习笔记9 之 流字典
- Oracle学习笔记之二 数据字典
- Python学习笔记-数据结构之字典
- swift学习笔记之数组与字典
- iOS开发之数组排序(数组中包括字典)
- IOS·Swift 集合类型之字典类型排序
- ios学习笔记(五)数组和字典
- 六大排序算法(插冒归堆选择快排)
- SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
- 丑数
- 【Qarth框架系列】概览
- 在bootstrop中实现轮播图
- iOS学习笔记之字典排序
- 数据结构顺序表的增删查改
- 将计算机管理的服务放到桌面上
- zoj 1011
- jmeter+ant报告生成过程中的问题与解决方案
- 题解:Gray Code
- 从技术博主到知乎大V:资深Python工程师的12年进阶路
- android三种方法实现按钮事件机制
- Android七大布局