OC 資料型別之間的轉換方法

2021-09-07 00:23:20 字數 4335 閱讀 9224

nsnumber轉nsstring:

假設現有一nsnumber的變數a,要轉換成nsstring型別的b

方法如下:

nsnumberformatter* numberformatter = [[nsnumberformatter alloc] init];

b = [numberformatter stringfromnumber:a];

nsstring和float 還有int之間的轉換

nsstring *tempa = @"123";

nsstring *tempb = @"456";

1,字元轉int

int intstring = [newstring intvalue];

2,字元轉float

float floatstring = [newstring floatvalue];

3,字串拼接

nsstring *newstring = [nsstring stringwithformat:@"%@%@",tempa,tempb];

4,int轉字元

nsstring *stringint = [nsstring stringwithformat:@"%d",intstring];

5,float轉字元

nsstring *stringfloat = [nsstring stringwithformat:@"%f",intstring];

nsstring *a = [[nsstring alloc] initwithstring : @"5, 10, 2, 0, 0, 0.01, 1, 0.05, 0, 0, 0"];

nsarray *bulltedata = [a componentsseparatedbystring:@","];

for (int i = 0; i < [bulltedata count]; i++)

將字串存到陣列中,在讀取的時候轉換成需要的型別。

說法二:

1.nsstring轉化為unicode string:(nsstring*)fname = @「test」;

char fnamestr[10];

memcpy(fnamestr, [fname cstringusingencoding:nsunicodestringencoding], 2*([fname length]));

與strcpy相比,memcpy並不是遇到'\0'就結束,而是一定會拷貝完n個位元組
2.nsstring 轉化為 char *nsstring * str= @「test」;

const char * a =[str utf8string];

3.char * 轉化為 nsstring
nsstring *str=[nsstring stringwithcstring  encoding:nsutf8stringencoding];
4.char * 轉化 nsdata方法一:

char * a = (char*)malloc(sizeof(byte)*16);

nsdata *data = [nsdata datawithbytes: a length:strlen(a)];

方法二:

轉換為nsstring: - (id)initwithutf8string:(const char *)bytes

然後用nsstring的 - (nsdata *)datausingencoding:(nsstringencoding)encoding

5.nsdata 轉化 char *nsdata data ;

char* a=[data bytes];

6.nsdata 轉化 nsstring;

nsdata* data;
nsstring* astr= [nsstring alloc] initwithdata:data   encoding:nsasciistringencoding];
7.nsstring 轉化 nsdata物件nsdata* xmldata = [@"testdata" datausingencoding:nsutf8stringencoding];
nsstring 轉化 nsurl
//nsurl *url = [nsurl urlwithstring:[str   stringbyaddingpercentescapesusingencoding:nsutf8stringencoding ]];
nsstring *urlstring=[@"搜尋&ie=utf-8&oe=utf-8" stringbyaddingpercentescapesusingencoding:nsutf8stringencoding];
nsurl 轉化 nsstring

// 傳送請求並獲得伺服器反饋的資料

nsdata *urldata = [aesencdecviewcontroller get:url];

// 第一種 轉換nsdata資料到char*字串

char * test = (char*)[urldata bytes];

std::string old = deaes(test);

// 第二種 轉換nsdata到utf8編碼的nsstring中再轉換為char*字串

// nsstring *desstr = [[nsstring alloc] initwithdata:urldata encoding:nsutf8stringencoding];

// const char *desresult = [desstr utf8string];

// std::string old = deaes(desresult);

// 解密字字串到明文

nsstring *oldstr = [[nsstring alloc] initwithcstring:old.c_str()];

很多時候軟體讀取的中文網頁編碼集是gb2312,所以顯示出來的是亂碼。這時需要將nsstring文字編碼轉換
nsurl *url = [nsurl urlwithstring:urlstr];

nsdata *data = [nsdata datawithcontentsofurl:url];

nsstringencoding enc = cfstringconvertencodingtonsstringencoding(kcfstringencodinggb_18030_2000);

nsstring *retstr = [[nsstring alloc] initwithdata:data encoding:enc];

OC各種資料型別之間的轉換方法

nsnumber轉nsstring 假設現有一nsnumber的變數a,要轉換成nsstring型別的b 方法如下 nsnumberformatter numberformatter nsnumberformatter alloc init b numberformatter stringfromn...

資料型別之間的轉換

parseint 將乙個字串轉換為整數數值。parsefloat 將乙個字串轉換成為浮點小數值。兩個函式都是從字串的開始讀取乙個數字並返回數值。例如下面的語句將 30 angry polar bears 這個字串轉換成數字 stringvar 30 angry polar bears munvar ...

資料型別之間的轉換

一 let console.log true false由於 沒有被賦值,因此console.log 為undefined,會拿undefined與true進行對比,因此會輸出false console.log undefined true而上述就會輸出true 二 let 1 console.lo...