有一个字符串是  "00A400024F01"  ,怎么让他转换成 0x00,0xA4,0x00,0x02,0x4F,0x01 这个样子的啊。就是每两位组成一个十六进制的数。。谢谢大家了。

解决方案 »

  1.   

    1.既然格式已经固定了,你可以把字符串两个字符一分组,先分成几组
    2.如果只是要显示成0x..这种格式,就简单了,只需要[NSString stringWithFormat:@"0x%@", str],str就是刚才分组过后的字符串,如果是要在计算中使用这些十六进制树,你就需要先把上面分组的字符串转化成整数(比如A4=10 * 16 + 4),之后用这个计算得出来的数去做格式化显示(%x,就会把整数转化为对应的16进制)
      

  2.   

    请问你第一步说的两个字符分一组该怎么分组啊,具体怎么操作啊。我这只是列举了几个数,真正的串是很长的。。再帮忙指点一下,最好能给出程序来。别笑话我啊,我不是做Ios开发的,对这个一窍不通。希望你能说详细点。。谢谢。。
      

  3.   

    转换为十六进制的代码:+ (NSString *) stringToHex:(NSString *)str
        {   
            NSUInteger len = [str length];
            unichar *chars = malloc(len * sizeof(unichar));
            [str getCharacters:chars];        NSMutableString *hexString = [[NSMutableString alloc] init];        for(NSUInteger i = 0; i < len; i++ )
            {
                // [hexString [NSString stringWithFormat:@"%02x", chars[i]]]; /*previous input*/
                [hexString appendFormat:@"%02x", chars[i]]; /*EDITED PER COMMENT BELOW*/
            }
            free(chars);        return [hexString autorelease];
        }
      

  4.   

    第一步分割字符用下面的代码:
    NSString * mystring = @"Hello,How are you";// 假设这是你的字符串
    NSArray * array = [mystring componentsSeparatedByString:@","];
    NSString * str1 = [array objectAtIndex:0]; //Hello
    NSString * str2 = [array objectAtIndex:1]; //How are you
    如果想将两个字符串合并为一个:NSString *str1=@"hi";
    NSString *str2=@"How are you";NSString *mainstr=[NSString stringWithFormat:@"%@ %@",str1,str2];输出就是 hi How are you