我有一个如下格式的字符串

string s = "This is a Test String.\n   This is a next line.\t This is a tab.\n'

我想从上面的字符串中删除所有出现的\n和\r。

我已经尝试了string s = s.Trim(new char[] {'\n', '\r'});但这并没有帮助。


当前回答

我知道这是一个老帖子,但我想分享我用来删除新行字符的方法。

s.Replace(Environment.NewLine, "");

引用:

MSDN字符串。替换方法和MSDN环境。换行符属性

其他回答

如果速度和低内存使用很重要,可以这样做:

var sb = new StringBuilder(s.Length);

foreach (char i in s)
    if (i != '\n' && i != '\r' && i != '\t')
        sb.Append(i);

s = sb.ToString();

FYI,

Trim()已经做到了。

以下LINQPad示例:

void Main()
{
    var s = " \rsdsdsdsd\nsadasdasd\r\n ";
    s.Length.Dump();
    s.Trim().Length.Dump();
}

输出:

23
18

就这么做吧

s = s.Replace("\n", String.Empty).Replace("\t", String.Empty).Replace("\r", String.Empty);
string remove = Regex.Replace(txtsp.Value).ToUpper(), @"\t|\n|\r", "");

如果您想从开始和结束删除,可以使用修剪。

string stringWithoutNewLine = "\n\nHello\n\n".Trim();