c#怎么判断字符串中包含汉字?

如何用c#语句判断一个字符串中是否包含汉字?

1、用ASCII码判断

  在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,具体代码如下:

   

string text = "是不是汉字,ABC,柯乐义";
for (int i = 0; i < text.Length; i++)
{
    if ((int)text[i] > 127)
  {
      Console.WriteLine("是汉字");
  }else{
      Console.WriteLine("不是汉字");
  }
}

2、用汉字的 UNICODE 编码范围判断

  汉字的 UNICODE 编码范围是4e00-9fbb,具体代码如下:

 

 string text = "是不是汉字,ABC,keleyi.com";
char[] c = text.ToCharArray();
for (int i = 0; i < c.Length;i++)
{
    if (c[i] >= 0x4e00 && c[i] <= 0x9fbb)
    {
       Console.WriteLine("是汉字");
   }else{
        Console.WriteLine("不是汉字");
    }
}

3、用正则表达式判断

  用正则表达式判断也是用汉字的 UNICODE 编码范围,具体代码如下:

   

 string text = "是不是汉字,ABC,keleyi.com";
for (int i = 0; i < text.Length; i++)
{
    if (Regex.IsMatch(text[i].ToString(), @"[\u4e00-\u9fbb]+{1}quot;))
    {
        Console.WriteLine("是汉字");
    }else{
        Console.WriteLine("不是汉字");
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
using System.Text.RegularExpressions;//先导入这个使用正则表达式

Regex reg = new Regex(@"[\u4e00-\u9fa5]");//正则表达式
string str="smile 卡";
if (reg.IsMatch(str))
{
Console.WriteLine("有汉字");
}
else
{
Console.WriteLine("没汉字");
}本回答被提问者和网友采纳
第2个回答  2009-10-15
using System.Text.RegularExpressions;//导入这个使用正则表达式的命名空间
Regex reg = new Regex(@"[\u4e00-\u9fa5]");//汉字正则的表达式。
string text1="";
console.write("请输入:");
string text1=console.Readline();
if (reg.IsMatch(text1))//判断是不是汉字的方法,
{
console.write(“你输入法的是汉字\n”);
}
else
{
console.write("你输入的不是汉字“);
}
同学,如果你想要关于正则的方法,与及表达式的话, 我可以发给你。。。
第3个回答  2009-10-15
Regex regex = new Regex("^[\u4e00-\u9fa5]+$");
第4个回答  2009-10-15
看字符所占的字节
相似回答