因为你去掉一个\n, 字符串长度就减少1, 
你的 strTemp.Remove(i -1, 2)这句有点bug
长度减少了, 你还以为它是那么长的字串

解决方案 »

  1.   

    i从strTemp.Length -1 到0反过来循环就不会出错
      

  2.   

    我搞不懂的是,为什么Remove的时候要(i-1,2),而不是(i-1,1)呢?
    我试过了,(i-1,1)是没有效果的,而(i-1,2)则是可以的。
    难道一个\n是占两个字符的位置吗?
      

  3.   

    strTemp = strTemp Replace("\r\n","");orstrTemp = strTemp Replace("\n","");
      

  4.   

    哦,Replace的办法不错。
    可是为什么我用Remove的时候,要(i-1,2),而不是(i-1,1)呢?
    我试过了,(i-1,1)是没有效果的,而(i-1,2)则是可以的。
    难道一个\n是占两个字符的位置吗?
      

  5.   

    \n占两个字符不奇怪,在unix系统里面\r\n在windows系统里用\n就行了,\n是不是叫回车换行啊?一个是回车一个是换行,不过换行符是不可见的。
      

  6.   

    \n占两个字符,用Remove的时候,要(i-1,2),
    每次Remove后,应该加上
    i=i-2;