while(S.IndexOf("  ")!=-1)
    S=S.Replace("  "," ");

解决方案 »

  1.   

    using System.Text.RegularExpressions;Text = Regex.Replace("11     22    33     44", @"( )+", "$1", RegexOptions.None);
      

  2.   

    planfore(你伤害了我,还一笑而过!) 的方法是最方便的,在字符串不长的情况下是个好主意.while(S.IndexOf("  ")!=-1)
        S=S.Replace("  "," ");如果字符串很长(比如你要处理的是QQ群导出来的聊天记录,可能超过几十万上百万行...)那么用上面这个while循环几乎可以肯定会死机(没有响应).......大数据要方便换用StringBuilder来处理,
    或者要追求最小内存消耗的一个一个字符读,读到空格把一个状态变量设为true,然后接着忽略空格,直到不是空格再设为false, 流方式,读一个字符写一个字符.... 
      

  3.   

    outString=System.Text.RegularExpressions.Regex.Replace(S,@"\s+"," ");
      试试这个
      

  4.   

    try..string S = " a    er   sdf  aa";
                S = Regex.Replace(S.Trim(), @"\s+", " ");
                Console.WriteLine(S);
      

  5.   

    string S = " a    er   sdf  aa";
    string[] ss = s.Split(' ');
    StringBuilder sb = new StringBuilder();foreach(string str in ss)
    {
        sb.Append(str.trim());
    }
    S = sb.ToString();
      

  6.   

    Sorry ,忘了加空格string S = " a    er   sdf  aa";
    string[] ss = s.Split(' ');
    StringBuilder sb = new StringBuilder();foreach(string str in ss)
    {
        sb.Append(str.Trim()).Append(" ");
    }
    S = sb.ToString().Trim();