我的需求是:我输入的内容中有中英文混杂的字符,我想判断遇到中文都用问号来代替,这样需要逐个判断输入内容的个个字符是中文还是英文,是英文原样输入,是中文就用问号代替,请问如何做,很急,谢谢各位~~!

解决方案 »

  1.   

    http://tech.sina.com.cn/s/2008-07-11/1236729620.shtml
    上面提供了判断是否中文字符的方法
      

  2.   


                Regex reg = new Regex(@"[\u4E00-\u9FFF]");
                string str = "测试testing测试aaaaaaaaaaaa";            string res = reg.Replace(str, "?");            Console.WriteLine(res);
      

  3.   

    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("你输入的不是汉字“);
    }
    你根据这个改一下
      

  4.   

    string s1="abcd中国人民cdef电脑csdn网站saa发贴aa";
    StringBuilder sb1 = new StringBuilder(100);
    for (int i1 = 0; i1 < s1.Length; i1++)
    {
        char c1=s1[i1];
        if ((int)c1 >= 0x4e00 && (int)c1 <= 0x9fa5)
        {
            c1 = '?';
        }
        sb1.Append(c1);
    }
    MessageBox.Show(sb1.ToString());
      

  5.   

    下面代码已经调试过可行
    private void button1_Click(object sender, EventArgs e)
            {
                string A = "a好B了";
                string LAST = "";
                for (int i = 0; i < A.Length; i++)
                {
                    string B = A.Substring(i, 1);
                    Match m = Regex.Match(B, @"^[A-Z,a-z]*$");
                    if (!m.Success)
                    {
                        LAST = LAST + "?";
                    }
                    else
                    {
                        LAST = LAST + B;
                    }
                }
                MessageBox.Show(LAST);
            }
      

  6.   

    string intput = "Hello 字!";
    input = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(s));  // input = Hello ?!
      

  7.   

    string str="abc你好";
    string newStr="";
    Regex rx = new Regex("^[\u4e00-\u9fa5]$");
    for(int i=0;i<str.Length;i++)
    {
    if(!rx.IsMatch(str[i].ToString()))//不是中文
    {
    newStr+=str[i];
    }
    else{
    newStr+="?";
    }
    }
    Console.WriteLine(newStr);
      

  8.   

    用正则表达式,看你输入的值是否满足^[A-Z,a-z]*$
    如果满足就全部是英文,否则就存在中文
      

  9.   

    判断很简单,unicode<256的都是英文,其他unicode>=256的用?代替,如果是控制textox的输入,那最好要相应KeyPress事件,判断keycode,如果大于等于256就用?代替好了。
      

  10.   

    (@"[\u4e00-\u9fa5]");//汉字正则的表达式。

    判断占字节数呀
      

  11.   

        调用这个方法,
     public static bool valdateNum(string P_str_num)
     {
            return Regex.IsMatch(P_str_num,@"^@"[\u4e00-\u9fa5]"$");
     }如果返回true 就用“?”代替 即可
      

  12.   

    调用这个方法,
     public static bool valdateNum(string P_str_num)
     {
      return Regex.IsMatch(P_str_num,@"^[\u4e00-\u9fa5]$");
     }如果返回true 就用“?”代替 即可