IOS-各种数据类型的转换

来源:互联网 发布:mac开机出现问号文件夹 编辑:程序博客网 时间:2024/06/05 13:32

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
原创粉丝点击