超簡單C#獲取帶漢字的字符串真實長度(單個英文長度為1,單個中文長度為2)
更新時間:2018年03月13日 16:30:03 投稿:wdc
正常情況下,我們是直接去string的length的,但是漢字是有兩個字節(jié)的,所以直接用length是錯的
正常情況下,我們是直接去string的length的,但是漢字是有兩個字節(jié)的,所以直接用length是錯的。如下圖:
所以應該用以下代碼來獲取長度:
private void button1_Click(object sender, EventArgs e) { string s = textBox1.Text; int i = GetLength(s); MessageBox.Show(i.ToString()); } public static int GetLength(string str) { if (str.Length == 0) return 0; ASCIIEncoding ascii = new ASCIIEncoding(); int tempLen = 0; byte[] s = ascii.GetBytes(str); for (int i = 0; i < s.Length; i++) { if ((int)s[i] == 63) { tempLen += 2; } else { tempLen += 1; } } return tempLen; }
運行結果如下圖:
也可以用這個獲取長度:
int i = System.Text.Encoding.Default.GetBytes(s).Length;
通過系統(tǒng)提供函數我們就可以獲取中文的真實長度,是不是很簡單
相關文章
WinForm實現(xiàn)攔截窗體上各個部位的點擊特效實例
這篇文章主要介紹了WinForm實現(xiàn)攔截窗體上各個部位的點擊特效實例,對窗體上各個部位進行定義,從而實現(xiàn)了點擊特效,需要的朋友可以參考下2014-09-09c#遍歷System.drawing.Color下面的所有顏色以及名稱以查看
c#遍歷System.drawing.Color下面的所有顏色以及名稱以查看,需要的朋友可以參考一下2013-02-02關于Unity中RectTransform與transform的區(qū)別
這篇文章主要介紹了Unity中RectTransform與transform的區(qū)別,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01