C#判断字符串中是否含有汉字

如题所述

string strTmp = "se 5 王%# @e";使用正则表达式Regex r = new Regex(@"[\u4e00-\u9fa5]+"); Match mc = r.Match(strTmp); if(mc.Length!=0) { Console.WriteLine("strTmp含有汉字.."); }一般方法int n1=0,n2=0,n3=0,n4=0,n5=0; foreach (char ch in strTmp) { if (ch >= '0' && ch <= '9') n1++;//n1对数字进行计数 else if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') n2++;//n2对字母进行计数 else if (ch == ' ') n3++;//n3对空格进行计数 else if (ch >= 0x4e00 && ch <= 0x9fa5) { n4++;//n4对汉字进行计数 } else { n5++;//n5对特殊字符进行计数 } }判断是否含有空格int pos=strTmp.IndexOf(' '); if (pos == -1) { Console.WriteLine("不含有空格"); } else { Console.WriteLine("含空格"); }判断一个字符是否为汉字string strTmp = "利"; byte[] tmp = System.Text.Encoding.Default.GetBytes(strTmp); if (tmp.Length > 1) { Console.WriteLine("该字符为汉字.."); }
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-12
在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,根据这个范围可以判断
相似回答