当前位置:编程学习 > C#/ASP.NET >>

C#中怎样判断一个字符串中得字符是汉字还是字母

   我是新手,想制作一个个人简介,输入姓名要判断输入的字符串是不是汉字,不知道怎么能得,各位大哥帮帮忙,保证给分 --------------------编程问答--------------------

/// <summary>
        /// 检测一个字符串是不是以汉字开始
        /// </summary>
        /// <param name="str">要检测的字符串</param>
        /// <returns>是否为汉字开始</returns>
        private bool isChinese(string str)
        {
            if ((int)str[0] > 0x4E00 && (int)str[0] < 0x9FA5)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


这段代码的简单的意思就是如果一个字符的ASCII码在0x4E00~0x9FA5之间,它就是汉字 --------------------编程问答--------------------
引用 1 楼 zzt369880281 的回复:
C# code


/// <summary>
        /// 检测一个字符串是不是以汉字开始
        /// </summary>
        /// <param name="str">要检测的字符串</param>
        /// <returns>是否为汉字开始</returns>
        private bool isChinese(s……

你的参数是字符串,不是数组,str[0]这样写,可以吗? --------------------编程问答-------------------- 把字符串一个个截取,然后存到一个字符串数组,遍历数组,用1楼的方法去判断 --------------------编程问答--------------------
/// <summary>
/// 验证字符串是否是中文。
/// </summary>
/// <param name="checkedStr">需验证的字符串。</param>
/// <param name="allMatch">是否完全匹配。当值为true时,全部是中文;当值为false时,仅含有中文。</param>
/// <returns></returns>
public static bool IsChinese(string checkedStr, bool allMatch)
{
string pattern;
if (allMatch)
pattern = @"^[\u4e00-\u9fa5]+$";
else
pattern = @"[\u4e00-\u9fa5]";
if (Regex.IsMatch(checkedStr, pattern))
return true;
else
return false;
}
--------------------编程问答--------------------
引用 4 楼 dalmeeme 的回复:
C# code

/// <summary>
            /// 验证字符串是否是中文。
            /// </summary>
            /// <param name="checkedStr">需验证的字符串。</param>
            /// <param name="allMatch">是否完全匹配。当值为true时,全部是……


++ --------------------编程问答--------------------
引用 1 楼 zzt369880281 的回复:
这段代码的简单的意思就是如果一个字符的ASCII码在0x4E00~0x9FA5之间,它就是汉字


是unicode才对吧。 --------------------编程问答-------------------- --------------------编程问答--------------------  <input   
                onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5]/g,'')"  
                onbeforepaste="clipboardData.setData('text',   
                clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">  
这个是限定只能输入汉字的  --------------------编程问答-------------------- 是unicode字符,简单型的.
 string s = textBox1.Text;
            foreach (char c in s)
            {
                int i=(int)c;
                if (i < 0x4e00 || i > 0x9fa5)
                {
                    MessageBox.Show("名字非法!");
                }
            }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,