iOS 对字符串进行ASCII码排序

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #ffffff; background-color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #00b1ff; background-color: #000000 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #ffffff; background-color: #000000; min-height: 19.0px }
span.s1 { color: #00b1ff }
span.s2 { color: #ff4647 }
span.s3 { color: #08fa95 }
span.s4 { color: #ffffff }
span.s5 { color: #de38a5 }
span.s6 { color: #8b87ff }

NSString *signValue = [NSString stringWithFormat:@"%@%@", valueJson, [Utility getCurrentTimes]];

NSMutableString * getSignString = [NSMutableString string];

NSMutableArray * mutaArray = [NSMutableArray array];

for (int i = 0; i < [signValue length]; i ++) {

[mutaArray addObject:[signValue substringWithRange:NSMakeRange(i, 1)]];

}

NSStringCompareOptions comparisonOptions = NSCaseInsensitiveSearch|NSNumericSearch|

NSWidthInsensitiveSearch|NSForcedOrderingSearch;

NSComparator sort = ^(NSString *obj1,NSString *obj2){

NSRange range = NSMakeRange(0,obj1.length);

return [obj1 compare:obj2 options:comparisonOptions range:range];

};

NSArray *resultArray2 = [mutaArray sortedArrayUsingComparator:sort];

for (NSString * oldString in resultArray2) {

[getSignString appendString:oldString];

}

//signValue为输入字符串, getSignString为最后得到字符串

原文地址:https://www.cnblogs.com/allenwuhen/p/9680476.html

时间: 2024-10-04 16:10:15

iOS 对字符串进行ASCII码排序的相关文章

C# 参数签名字符串按 ASCII码排序,注意其中的坑

参数签名中通常是按键值对中键名称的ASCII按从小到大的顺序排序后进行hash为签名字符串.不要直接使用 SortedDictionary<string, string> 有坑的,他是按数字.小写字母.大写字母的顺序排的,实际规则应该是数字.大写字母.小写字母的顺序来排才对.一直使用他在支付宝和微信的接口中都没问题,因为支付宝和微信的单词是用下划线分隔的,今天接入的一家支付公司用的驼峰命名法坑就出现了.正确的打开姿势如下: /// <summary> /// ASCII值排序 //

字符串ASCII码排序

在对接第三方支付渠道的时候,第三方会要求参数按照ASCII码从小到大排序. 如下是渠道方有关生成签名规则的java代码示例: //初始化0010merkey.private文件: String merchantprivatekey; merchantprivatekey=PayCfg.getValue("0010merchantprivatekey"); // 将要签名的数据传给map TreeMap map = new TreeMap(); StringBuffer sbf = ne

ASCII码排序 南阳acm4

ASCII码排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符. 输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格. 输出 对于每组输入数据,输出一行,字符中间用一个空格分开. 样例输入 2 qwe asd 样例输出 e q w a d s 来源 网络 上传者 naonao 具体实现看代码: #include<st

ASCII码排序

ASCII码排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符. 输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格. 输出 对于每组输入数据,输出一行,字符中间用一个空格分开. 样例输入 3 qwe asd zxc 样例输出 e q w a d s c x z #include "stdio.h"void

[PHP]chr和ord函数实现字符串和ASCII码互转

chr和ord函数是用来字符串和ASCII码互转的.  ASCII码是计算机所能显示字符的编码,它的取值范围是0-255,其中包括标点.字母.数字.汉字等.在编程过程中,经常把指定的字符转化为ASCII码进行比较. 下面是PHP提供的转换ASCII码和字符的函数. 1.chr()函数 该函数用于将ASCII码值转化为字符串.其函数声明如下: string chr (int ascii); 2.ord()函数 该函数用于将字符串转化为ASCII码值.其函数声明如下: int ord(string 

ACM:ASCII码排序

ASCII码排序:http://acm.nyist.net/JudgeOnline/problem.php?pid=4 绝不重新造轮子. #include<iostream> #include<string> #include<algorithm> using namespace std; int main() { int n = 0; cin >> n; for (int i = 0; i < n; ++i) //多次测试 { string str;

hdu 2000 ASCII码排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2000 题目大意:按各字符的ASCII码从小到大的顺序进行排序 注意格式哦!输出时字符中间用一个空格分开 1 #include<stdio.h> 2 int main() 3 { 4 char a,b,c,t; 5 while(scanf("%c%c%c",&a,&b,&c)!=EOF) 6 { 7 getchar(); 8 if(a>b) 9 {

nyist 4 ASCII码排序

ASCII码排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符. 输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格. 输出 对于每组输入数据,输出一行,字符中间用一个空格分开. 样例输入 3 qwe asd zxc 样例输出 e q w a d s c x z error #include<stdio.h>int

2000 ASCII码排序

声明:从今天开始每天做一道杭电ACM题,锻炼思考能力. 2000  ASCII码排序 Problem Description 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符. Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格. Output 对于每组输入数据,输出一行,字符中间用一个空格分开. Sample Input qwe asd zxc Sample Output e q w a d s c x z #include<stdio.h> int mai