如下面的文本:
123
   
321456
789
现在想要的文本是:
123
321
456
789
该怎么删除空行!==============================用了替换的方法.发现不行.
    NewTex1 = NewTex1.Replace("\r\n", string.Empty);
发现不行....

解决方案 »

  1.   

       Regex reg = new Regex(@"\r\n\s*\r\n");//"\r\n\s*\r\n"表示空行,该空行除了有n个空格,没有其他字符串
       string FileStr = reg.Replace(reader.ReadToEnd().ToString(),"\r\n");//取得文件流,将空行替换掉
        FileStr = FileStr.Substring(0,FileStr.LastIndexOf("\n"));//截取文件流去掉最后一个换行
        FileStream fs = new FileStream(Server.MapPath(SaveFile),FileMode.OpenOrCreate,FileAccess.Write) ;
        StreamWriter FileStream = new StreamWriter(fs);
        FileStream.Flush();
      

  2.   

    NewTex1 = string.Join("\r\n", NewTex1.Split('\r', '\n').Where(ln => ln.Trim().Length > 0).ToArray());或者写为NewTex1 = string.Join("\r\n", (from ln in NewTex1.Split('\r', '\n')
                                    where ln.Trim().Length > 0
                                    select ln).ToArray());
      

  3.   

    读取和设置的方法如下:
     
     string s = Clipboard.GetText();
     Clipboard.SetText(s);如果有两个连续的换行符就相当于这个一个空的行,你可以用Replace方法把其替换成一个换行符来删除空行.
      

  4.   


                string s = textBox1.Text;
                char[] splitchar = { '\n','\r' };
                string[] s2 = s.Split(splitchar, StringSplitOptions.RemoveEmptyEntries);
                s = string.Join("\r\n", s2);
                textBox2.Text = s;
    小白用渣渣的方法,顺便膜拜1L的正则表达式,2L的LINQ,果然csdn到处都是大神。
      

  5.   

    转成string[]并去除空格 然后拼接
    string[] strs1 = s.Split(new char[]{' ','|'},StringSplitOptions.RemoveEmptyEntries);
      

  6.   

     string path = @"e:\test.txt";
                if (File.Exists(path))
                {
                    string[] strs = File.ReadAllLines(path);
                    var querys = from str in strs
                                 where str != ""
                                 select str;
                    
                }