2008年10月7日 星期二

處理字串的方法

在.NET中,使用string、substring、length所取的字數皆為字元數(char),相當於2bytes,所以中、英字母的大小沒有區別。

但匯入文字檔(txt)所取ㄉ字數為位元數(byte),中文=2bytes、英文=1byte,須另行處理,使用substring、length會出現錯誤。

使用上有點不同~~分別列舉如下

ex:

<Ⅰ>字元數(char)寫法


string aa = "an中文txt"; 
int iCount = aa.Length();

string sChinese = aa.substring(aa, 2, 2);

 

iCount = 7

sChinese = "中文"

 

<Ⅱ>位元數(byte)寫法   
string aa = "an中文txt";

int iCount = System.Text.Encoding.Default.GetByteCount(aa);


byte[] bString = System.Text.Encoding.Default.GetBytes(aa);


string sChinese = System.Text.Encoding.Default.GetString(bString, 2, 2);


 


iCount = 9


sChinese = "中"