什么是删除多个空行的最快方法?

Ody*_*dys 0 c# replace

我通过一个事件得到一个字符串消息,我把它放在一个TextBox中.不幸的是,这条消息有很多空行.如何用一个替换两个空行?

我的第一个想法是这样的:

string newLine = Environment.NewLine;
textbox.text = msg.Replace(newLine + newLine, newLine);
Run Code Online (Sandbox Code Playgroud)

我相信有更好的方法来实现这一目标.

Moo*_*ice 5

你可以用RegEx.Replace.

事实上,关于该功能的MSDN文章展示了如何摆脱太多的空白,非常接近你想要做的事情:

http://msdn.microsoft.com/en-us/library/xwewhkd1.aspx

但是,出于您的目的,而不是寻找空白:

"\\s+";
Run Code Online (Sandbox Code Playgroud)

您想查找换行符:

"\\n+";
Run Code Online (Sandbox Code Playgroud)

  • @odyodyodys,如果你的程序有*明显且不可接受的*减速并且它被证明是这个*单*例程,那么我会提倡不同的方法.在速度实际上是一个问题之前,不应该总是速度.:) (3认同)

Bro*_*ass 5

如何利用string.Split()该选项RemoveEmptyEntries:

message = string.Join(Environment.NewLine, message.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries));
Run Code Online (Sandbox Code Playgroud)

这也将连续覆盖两个以上的新行,而不是仅仅两个.