国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c# 獲取字符串的字節數的方法

2020-01-24 02:54:13
字體:
來源:轉載
供稿:網友
將字符串轉換為ASCII編碼數組,只要是中文字節碼就是ASCII編碼63即"?",所以可以由此來進行判斷
復制代碼 代碼如下:

class StringOP
    {
        /// <summary>
        /// 獲取中英文混排字符串的實際長度(字節數)
        /// </summary>
        /// <param name="str">要獲取長度的字符串</param>
        /// <returns>字符串的實際長度值(字節數)</returns>
        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;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万安县| 巩义市| 交口县| 大埔区| 松滋市| 米泉市| 武乡县| 涞水县| 静安区| 枝江市| 咸阳市| 鄂尔多斯市| 新龙县| 凌源市| 黔南| 睢宁县| 广西| 楚雄市| 威海市| 海安县| 汶川县| 金山区| 木兰县| 栾城县| 岑溪市| 安义县| 济源市| 绥宁县| 鄂州市| 武乡县| 诏安县| 黄骅市| 萝北县| 延川县| 夏河县| 扶绥县| 昌宁县| 济南市| 灵璧县| 巴林左旗| 汝阳县|