C# winfrom程序中,字符串中有中文和英文的标点符号,怎么将这些标点符号用空格代替掉?用ascii码如何操作?希望有详细的代码,先谢谢了!

解决方案 »

  1.   

    直接Replace不可以吗?在VB.NET中可以直接用Replace(Chr(ASCII))
      

  2.   

    第一种就是把中文标点先转换成英文,在一起替换Relpace()方法。
    第二种就是用正则表达式。
      

  3.   

    用正则string str=@"ere.dgsa讽。fdssd..的是非得失。";
    Regex reg=new Regex(@"[.。]+");
    str=reg.Replace(str,"");
      

  4.   

    /// 转全角的函数(SBC case) /// 
          ///
    任意字符串 /// 全角字符串 ///
           ///全角空格为12288,半角空格为32 
          ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///public string ToSBC(string input)
    { //半角转全角:
        char[] c=input.ToCharArray();
          for (int i = 0; i < c.Length; i++)
        {
           if (c[i]==32)
        {
        c[i]=(char)12288; continue;
      }
       if (c[i]<127) c[i]=(char)(c[i]+65248);
       }
    return new string(c);
    }/// /// 转半角的函数(DBC case) ///
    ///
    任意字符串
    /// 半角字符串 ///
    ///全角空格为12288,半角空格为32
    ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///
    public string ToDBC(string input)
    {
    char[] c=input.ToCharArray();
    for (int i = 0; i < c.Length; i++)
    {
    if (c[i]==12288)
    {
    c[i]= (char)32; continue;
    }
    if (c[i]>65280 && c[i]<65375)
    c[i]=(char)(c[i]-65248);
    }
    return new string(c);
    }
      

  5.   


    string str=@"ere.dgsa讽。fdssd..的是非得失。";
    string pattern=@"[.。]+";
    str=Regex.Replace(str,pattern,"");