class Program
    {
           public static String DelAllSpace(string str)
        {
            //使用StringBuilder类提供的有关方法实现功能
            StringBuilder b = new StringBuilder(str);
            for (int i = 0; i < b.Length; i++)
            {
                if (b[i] == ' ')
                {
                    b.Remove(i,1);
                    i++;
                }
            }
            return b.ToString();
        }        static void Main()
        {
            string a = "a dd  e   eer";      
            Console.WriteLine(DelAllSpace(a));
        }
   }
运行程序为什么显示add e  eer

解决方案 »

  1.   

    这个我觉得你因该直接判断他的ASCII值
      

  2.   

    tryif (b[i] == ' ')
      {
      b.Remove(i,1);
      i--;
      }
      

  3.   

    public static String DelAllSpace(string str)
      {
      //使用StringBuilder类提供的有关方法实现功能
      StringBuilder b = new StringBuilder(str);
      for (int i = 0; i < b.Length; i++)
      {
      if (b[i] == ' ')
      {
      //你每次使用StringBuilder对象的 Remove(Index,Num)方法,StringBuilder的Length属性会相应的减小Num
      b.Remove(i,1);
      //Num为1
      i--;
      }
      }
      return b.ToString();
      }
      

  4.   

    b.Remove(i,1);
    i++;
    这里修改为
    b.Remove(i,1);
    i--;