C# 如何合并多个空格为一个空格呢,有中文空格和英文空格,希望有注释谢谢

解决方案 »

  1.   

    循环遍历字符串每个字符,如果是空格并且下个字符也是空格的话,就替换为空,否则不替换。所谓你说的中文空格是指全角和半角吧,一般全角就是亮哥空格。一个中文是8个二进制位,英文为4个二进制位。在程序里面不用区别的。string str;
    for(int i=0;i<str.Length;i++)
    {
    .....
    }
      

  2.   

    string str = "a  d d   e";
    str = Regex.Replace(str, @"\s+", " ");
      

  3.   

      public string  F(string originStr)
            {
                string newStr = "";
                string[] splits = originStr.Split(" "); //以空格为标志分割字符串
                for (int i = 0; i < splits.Length; i++)
                {
                    if (splits[i].Trim().Equals(""))  //这里不是空格
                    {
                        continue;
                    }
                    else
                    {
                        newStr += splits[i] + " ";  //这里加一个空格
                    }
                }
                return newStr;        }
      

  4.   

    while(str.indexOf("  ")!=-1){
    str=str.Replace("  "," ");
    }
      

  5.   

    string str = "a  d d  e"; 
    str = Regex.Replace(str, @"\s+", " ");这个可以,谢谢了,如果合并连续的逗号为一个逗号怎么操作呢.
      

  6.   

    str = Regex.Replace(str, @",+", ","); 
      

  7.   

    循环遍历每一个字符,如果是空格就先加在前一个字符后面,然后判断它的前一个字符是不是空格,是就删掉这个空格;不是就仍然加在前一个字符后面...依次....
    string str="aa  bb    cc";
    str = str.Trim();
                string s = "";
                for (int i = 0; i < str.Length; i++)
                {
                    if (str.Substring(i, 1) == " ")
                    {
                        s += str.Substring(i, 1);
                        if (str.Substring(i - 1, 1) == " ")
                        {
                            s = s.Remove(s.Length - 1, 1);
                        }
                    }
                    else
                    {
                        s += str.Substring(i, 1);
                    }
                }
    输出结果:aa bb cc