字符串排序和characterAtIndex:i 方法

本文介绍了如何使用Objective-C处理Unicode字符,包括遍历字符串中的每个Unicode字符并进行格式化输出的方法。此外,还详细展示了如何构建HTTP请求,包括设置请求URL、参数构造及加密过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

haracterAtIndex:i 这个方法的作用是
返回索引i 所在UniCode 字符 而不是字串
所以应该是
unichar strxmlchar=[strcs characterAtIndex:i];

接收字符
并且format要以%C(大写字母C)的形式

NSString *strcs=@"猜猜看";
NSString *str=@"";
for(int i=0;i<strcs.length;i++){
unichar strxmlchar=[strcs characterAtIndex:i];
str=[NSStringstringWithFormat:@"%C",strxmlchar];
NSLog(@"%C",strxmlchar);
}

为你推荐的另一种方法
for(int i=0;i<strcs.length;i++){

str=[strcs substringWithRange:NSMakeRange(i, 1)];
NSLog(@"%@",str);
if ([str isEqualToString:@"看"]) {
NSLog(@"%@是指定字符",str);
}
}

//订单类---拼接request Url

- (NSMutableURLRequest *)requestWithOrderMethod:(NSString *)method andPara:(NSString *)para

{

    NSString *stringUrl = [NSString stringWithFormat:@"%@/%@",kOrderURL,method];

    NSString *encodeStr = [stringUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSURL *url = [NSURL URLWithString:encodeStr];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0f];

    [request setHTTPMethod:@"POST"];

    DLog(@"订单请求Url = %@",url);

    //application/x-www-form-urlencoded

    //    [request setValue:@"text/html; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

    [request setHTTPBody:[[self requestBodyWithMethod:method parameters:para] dataUsingEncoding:NSUTF8StringEncoding]];

    return request;

}

//构造参数

- (NSString *)requestBodyWithMethod:(NSString *)method parameters:(NSString *)parameters

{

    NSString * gStr = nil;

    if(parameters.length != 0)

    {

        gStr = [NSString stringWithFormat:@"%@&UserName=%d&sign=%@",parameters,111111,[self signKey:parameters method:method]];

    }

    else

    {

        gStr = [NSString stringWithFormat:@"UserName=%d&sign=%@",111111,[self signKey:parameters method:method]];

    }

        DLog(@"构造参数str = %@",gStr);

    return gStr;

}

//后台定的加密规则

- (NSString*)signKey:(NSString *)params method:(NSString *)method

{

    NSMutableString *paramMustr = [NSMutableString string];

    NSString *sKey ;

    NSString *result ;

    if(params.length != 0)

    {

        NSMutableArray *paramsMuArr = [[NSMutableArray alloc] init];

        for (int i = 0; i<params.length; i++)

        {

            unichar c = [params characterAtIndex:i];

            NSString * cStr = [NSString stringWithCharacters:&c length:1];

            [paramsMuArr addObject:cStr];

        }

        

        NSArray *paramsArr = [paramsMuArr sortedArrayUsingSelector:@selector(compare:)];

        

        for (int j = 0; j<[paramsArr count]; j++)

        {

            [paramMustr appendString:paramsArr[j]];

        }

        //    NSLog(@"排序 = %@",paramMustr);

        

        //拼接

        sKey = [NSString stringWithFormat:@"%@%@%@%@%@",@"111111",@"111111",method,@"111111",paramMustr];

        //MD5加密

        result = [sKey md5Hash];

    }

    else

    {

        //拼接

        sKey = [NSString stringWithFormat:@"%@%@%@%@",@"111111",@"111111",method,@"111111"];

        //MD5加密

        result = [sKey md5Hash];

    }

    

    return  result;

}

 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值