程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> c# 獲取字符串的字節數

c# 獲取字符串的字節數

編輯:更多關於編程

      將字符串轉換為ASCII編碼數組,只要是中文字節碼就是ASCII編碼63即"?",所以可以由此來進行判斷

      class StringOP

      {

      ///

      /// 獲取中英文混排字符串的實際長度(字節數)

      ///

      /// 要獲取長度的字符串

      /// 字符串的實際長度值(字節數)

      public int getStringLength(string str)

      {

      if (str.Equals(string.Empty))

      return 0;

      int strlen = 0;

      ASCIIEncoding strData = new ASCIIEncoding();

      //將字符串轉換為ASCII編碼的字節數字

      byte[] strBytes = strData.GetBytes(str);

      for (int i = 0; i <= strBytes.Length - 1; i++)

      {

      if (strBytes[i] == 63) //中文都將編碼為ASCII編碼63,即"?"號

      strlen++;

      strlen++;

      }

      return strlen;

      }

      }

      class TestMain

      {

      static void Main()

      {

      StringOP sop = new StringOP();

      string str = "I Love China!I Love 北京!";

      int iLen = sop.getStringLength(str);

      Console.WriteLine("字符串" + str + "的字節數為:" + iLen.ToString());

      Console.ReadKey();

      }

      }

      將字符串以Unicode的編碼轉換為字節數組,判斷每個字符的第二個字節是否大於0,來計算字符串的字節數

      public static int bytelenght(string str)

      {

      //使用Unicode編碼的方式將字符串轉換為字節數組,它將所有字符串(包括英文中文)全部以2個字節存儲

      byte[] bytestr = System.Text.Encoding.Unicode.GetBytes(str);

      int j = 0;

      for (int i = 0; i < bytestr.GetLength(0); i++)

      {

      //取余2是因為字節數組中所有的雙數下標的元素都是unicode字符的第一個字節

      if (i % 2 == 0)

      {

      j++;

      }

      else

      {

      //單數下標都是字符的第2個字節,如果一個字符第2個字節為0,則代表該Unicode字符是英文字符,否則為中文字符

      if (bytestr[i] > 0)

      {

      j++;

      }

      }

      }

      return j;

      }

      直接轉成字節碼獲取長度:

      byte[] sarr = System.Text.Encoding.Default.GetBytes(s);

      int len = sarr.Length;

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved