正则表达式
s=Regex.Replace(s, @"\s+", " ");

解决方案 »

  1.   


                string source = "a b  c   d    f g";
                string patten = @"(?is)(?<=[\s])[\s]+";
                Regex reg = new Regex(patten);
                source = reg.Replace(source, "");
      

  2.   

    Str= Regex.Replace(Str.Trim(), "\\s+", " ");
      

  3.   


    string s = "a b  c   d    f g";
    s = string.Join(" ", s.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries));
      

  4.   

    我在学校的时候老师也让我做过这个算法题
    当时我这么做的//原始字符串
      string s="a b  c   d    f g";
      s = s.Trim();
      string resString = "";
      for(int i = 1 ; i < s.Length;i++){
         if(s[i]==" "&& s[i-1]=="")continue;
         resString+=s[i].ToString();
      }
      s=resString;
      

  5.   

    //原始字符串
      string s="a b  c   d    f g";
      s = s.Trim();
      string resString = "";
      for(int i = 1 ; i < s.Length;i++){
         if(s[i]==" "&& s[i-1]==" ")continue;
         resString+=s[i].ToString();
      }
      s=resString;
    纠正  少了个空格
      

  6.   

    你可以重新创造一下这个字符串string.Join(" ", s.split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries));
      

  7.   

    s是大写的:string.Join(" ", s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
      

  8.   

    不能用 \s,因为之中包含了回车、Tab等,所以只能用 “ +”
      

  9.   

    string.Join(" ", from s in "a b  c   d    f g"
                    where s != 0x20
                    select s);