IOS-各种数据类型的转换

1.NSData->NSString
NSString *test = [NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

2.NSString->NSData
NSString *test = @“test”;
NSData *data = [test dataUsingEncoding:NSUTF8StringEncoding];

3.NSData->char*
NSData *data;
char*test = [data bytes];

4.char*->NSData
Byte *byte[4];
byte[0]=0x30;
byte[1]=0x31;
byte[2]=0x32;
byte[3]=0x33;
NSData *data =[NSData dataWithBytes:byte length:4];

5.字符转int,float
int intString = [string intValue];
float floatString = [string floatValue];

6.int,float转字符
NSString *string = [NSString stringWithFormat:@“%d%f”, intString,floatString];

7.字符串操作

拼接:NSSting *newString = [NSString stringWithFormat:”%@%@“,str1,str2];
截取:NSString*string =@”sdfsfsfsAdfsdf”;
string = [string substringToIndex:7];//截取掉下标7之后的字符串
[string substringFromIndex:2]; //截取掉下标2之前的字符串

匹配字符串:
NSString*string =@”sdfsfsfsAdfsdf”;
NSRange range = [string rangeOfString:@”f”];//匹配得到的下标
NSLog(@”rang:%@”,NSStringFromRange(range));
string = [string substringWithRange:range]; //截取范围类的字符串
NSLog(@”截取的值为:%@”,string);

分隔字符串:
NSString*string =@”sdfsfsfsAdfsdf”;
NSArray *array = [string componentsSeparatedByString:@”A”]; //从字符A中分隔成2个元素的数组
NSLog(@”array:%@”,array); //结果是adfsfsfs和dfsdf

8.NSDictionary转成Json
- (NSString )dictionaryToJson:(NSDictionary )dic
{
NSError *parseError = nil;
NSData *jsonData =[NSJSONSerialization dataWithJSONObject:dic
option:NSJSONWritingPrettyPrinted error:&parseError];
return [NSString alloc] initWithData:jsonData encoding:NSUTF8Encoding];

}

9、10进制数(小于255)转8位2进制字符串
+(NSString*)Binary:(int)TenHex
{
NSString *str = @”“;
while (TenHex!=0) {
str = [NSString stringWithFormat:@”%d%@”,TenHex%2,str];
TenHex = (int)TenHex/2;
}
while (str.length < 8) {
str = [NSString stringWithFormat:@”0%@”,str];
}
return str;
}

10、字符串转16进制
+ (NSString )hexStringFromString:(NSString )string
{
NSData *myD = [string dataUsingEncoding:NSUTF8StringEncoding];
Byte bytes = (Byte )[myD bytes];
//下面是Byte 转换为16进制。
NSString *hexStr=@”“;
for(int i=0;i<[myD length];i++)
{
NSString *newHexStr = [NSString stringWithFormat:@”%x”,bytes[i]&0xff];///16进制数
if([newHexStr length]==1)
hexStr = [NSString stringWithFormat:@”%@0%@”,hexStr,newHexStr];
else
hexStr = [NSString stringWithFormat:@”%@%@”,hexStr,newHexStr];
}
return hexStr;
}

11、16进制转字符串
+ (NSString )stringFromHexString:(NSString )hexString
{
char myBuffer = (char)malloc((int)[hexString length]/2 + 1);
bzero(myBuffer, [hexString length] / 2 + 1);
for (int i = 0; i < [hexString length] - 1; i += 2)
{
unsigned int anInt;
NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)];
NSScanner * scanner = [[[NSScanner alloc] initWithString:hexCharStr] autorelease];
[scanner scanHexInt:&anInt];
myBuffer[i / 2] = (char)anInt;
}
NSString *unicodeString = [NSString stringWithCString:myBuffer encoding:4];
NSLog(@”——字符串=======%@”,unicodeString);
return unicodeString;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值