在C#中修剪字符串的换行符最简单的方法是什么?

Edw*_*uay 107 c# string

我想确保_content不以NewLine字符结尾:

_content = sb.ToString().Trim(new char[] { Environment.NewLine });
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用,因为Trim似乎没有字符串集合的重载参数,只有字符.

从字符串末尾删除Enivronment.Newline的最简单的单线程是什么?

Sim*_*son 243

以下适用于我.

sb.ToString().TrimEnd( '\r', '\n' );
Run Code Online (Sandbox Code Playgroud)

要么

sb.ToString().TrimEnd( Environment.NewLine.ToCharArray());
Run Code Online (Sandbox Code Playgroud)

  • TrimEnd()已经在没有任何参数的情况下完成了Job!http://msdn.microsoft.com/de-de/library/system.string.trimend(v=vs.110).aspx和http://msdn.microsoft.com/de-de/library/system.char .iswhitespace(v = vs.110)的.aspx (22认同)
  • @Markus谢谢我找到了这个因为我不想要这种行为但是正在体验它.我是在印象之下\n不是白色空间但它是.TrimEnd和.Trim清除所有[空白](https://msdn.microsoft.com/en-us/library/aa664665%28v=vs. 71%29.aspx)字符原生 (2认同)

xr2*_*0xr 33

.Trim()\r\n为我删除(使用.NET 4.0).


Jon*_*eet 14

怎么样:

public static string TrimNewLines(string text)
{
    while (text.EndsWith(Environment.NewLine))
    {
        text = text.Substring(0, text.Length - Environment.NewLine.Length);
    }
    return text;
}
Run Code Online (Sandbox Code Playgroud)

如果有多个换行符,效率会有些低,但它会起作用.

或者,如果你不介意修剪(说)"\r\r\r\r"或者"\n\n\n\n"不仅仅是"\r\n\r\n\r\n":

// No need to create a new array each time
private static readonly char[] NewLineChars = Environment.NewLine.ToCharArray();

public static string TrimNewLines(string text)
{
    return text.TrimEnd(NewLineChars);
}
Run Code Online (Sandbox Code Playgroud)


Sco*_*ein 9

使用框架.ReadLine()方法有如下说法:

一行被定义为一个字符序列,后跟一个换行符("\n"),一个回车符("\ r")或一个回车符后面紧跟一个换行符("\ r \n").返回的字符串不包含终止回车符或换行符.

所以以下方法就可以了

_content = new StringReader(sb.ToString()).ReadLine();
Run Code Online (Sandbox Code Playgroud)


hea*_*vyd 6

关于什么

_content = sb.ToString().Trim(Environment.NewLine.ToCharArray());
Run Code Online (Sandbox Code Playgroud)


ban*_*ang 5

_content = sb.TrimEnd(Environment.NewLine.ToCharArray());
Run Code Online (Sandbox Code Playgroud)

这当然会删除 "\r\r\r\r" 以及 "\n\n\n\n" 和其他组合。在 NewLine 不是 "\n\r" 的“环境”中,您可能会遇到一些奇怪的行为:-)

但是,如果您能接受这个,那么我相信这是删除字符串末尾换行符的最有效方法。