首先要明白它們本身是由什麼組成的:
流:二進位制
位元組:無符號整數
字元:unicode編碼字元
字串:多個unicode編碼字元
那麼在.net下它們之間如何轉化呢?
一般是遵守以下規則:
流->位元組陣列->字元陣列->字串
下面就來具體談談轉化的語法
流->位元組陣列
memorystream ms = new memorystream();
byte buffer = new byte[ms.length];
ms.read(buffer, 0, (int)ms.length);
位元組陣列->流
byte buffer = new byte[10];
memorystream ms = new memorystream(buffer);
位元組陣列->字元陣列
1.byte buffer = new byte[10];
char ch = new asciiencoding().getchars(buffer);
//或者:char ch = encoding.utf8.getchars(buffer)
2.byte buffer = new byte[10];
char ch = new char[10];
for(int i=0; ich[i] = convert.tochar(buffer[i]);
字元陣列->位元組陣列
1.char ch = new char[10];
byte buffer = new asciiencoding().getbytes(ch);
//或者:byte buffer = encoding.utf8.getbytes(ch)
2.char ch = new char[10];
byte buffer = new byte[10];
for(int i=0; ibuffer[i] = convert.tobyte(ch[i]);
字元陣列->字串
char ch = new char[10];
string str = new string(ch);
字串->字元陣列
string str = "abcde";
char ch=str .tochararray();
位元組陣列->字串
byte buffer = new byte[10];
string str = system.text.encoding.utf8.getstring(buffer);
//或者:string str = new asciiencoding().getstring(buffer);
字串->位元組陣列
string str = "abcde";
byte buffer=system.text.encoding.utf8.getbytes(str);
//或者:byte buffer= new asciiencoding().getbytes(str);
說明:主要就是用到了convert類和system.text命名空間下的類,encoding是靜態類,asciiencoding是實體類,方法都是一樣的!
字串 字元 位元組
字串就是一串零個或多個字元,並且以乙個位模式為全0的nul位元組結尾。nul位元組是字串的終止符,但它本身並不是字串的一部分,所以字串的長度並不包括nul字元。複製字串 char strcpy char dst,char const src 這個函式把引數src字串複製到dst引數。如果引數src和...
c和指標 字串 字元 位元組
字串就是一串零個或多個字元,並且以乙個位模式為全0的nul位元組結尾 但是nul並不是字串的一部分,所以字串長度不包括nul。函式原型 size t strlen char const string 這個函式中出現了size t型別,這個型別是在stddef.h中定義的,它是乙個無符號的整型。但是在...
c和指標 字串 字元 位元組
1.strspn 返回字串中第乙個不在指定字串中出現的字元下標 表頭檔案 include定義函式 size t strspn const char s,const char accept 函式說明 strspn 從引數s 字串的開頭計算連續的字元,而這些字元都完全是accept 所指字串中的字元。簡...