C#區分中英文統計字串的長度

來源:互聯網
上載者:User
我們都知道C#中的string自已有一個Length屬性,用來統計字串的長度,如果字元都是中文或都是英文,那沒什麼問題,但如果出現中英文混合的情況,我們的統計結果就不太準確了,因為在電腦中,中文佔兩個位元組的空間,英文佔一個位元組的空間,而string的Length不具備區分中英文的功能,所以它計算出來的長度並不準確,如我們在網頁上顯示字元時,有時候不能超過一定的長度,如果字串是中英文混合,那載取的字串長短不一,嚴重影響美觀。

    當然,我們可以用一種非常簡單的方法來計算字串的長度,而且是中文算兩個字元,英文算一個字元,下面給出我一直在用的一個方法的原始碼,供大家參考:

      /// <summary>  
      /// 計算文本長度,區分中英文字元,中文算兩個長度,英文算一個長度
      /// </summary>
      /// <param name="Text">需計算長度的字串</param>
      /// <returns>int</returns>
      public int Text_Length(string Text)
      {
            int len=0;

            for(int i=0;i<Text.Length;i++)
            {
                byte[] byte_len = Encoding.Default.GetBytes(Text.Substring(i,1));
                if(byte_len.Length>1)
                    len += 2;  //如果長度大於1,是中文,佔兩個位元組,+2
                else
                    len += 1;  //如果長度等於1,是英文,佔一個位元組,+1
            }

            return len;
        }

    當然別忘了加上'using System.Text;',對System.Text的引用哦!!!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.