使用c#删除换行符

本文关键字:换行符 删除 使用 | 更新日期: 2023-09-27 18:16:27

我从名为'Description'的数据库字段获得字符串,它有换行符。它看起来像这样:


项头

描述在这里。


如何删除换行符?我尝试以下功能,但它不工作:

public string FormatComments(string comments)
{
    string result = comments.Replace(@"'r'n'", "");
    result = result.Replace(" ", "");
    return result;
}

请提出解决方案。

问候,阿西夫Hameed

使用c#删除换行符

主要原因是您正在使用逐字字符串字面值(以@开头)并以字面值'结束。结果是,Replace将最终寻找替换字符序列', r, ', n, ',而不是一个新的行。

这个应该可以修复它:

string result = comments.Replace("'r'n", ""); // Not idiomatic

但是更习惯的(和可移植的)应该是:

string result = comments.Replace(Environment.NewLine, "");

(编辑:这当然假设写数据库的系统和读数据库的系统使用相同的换行约定,或者翻译是透明的。如果不是这种情况,当然最好使用您希望用来表示换行的实际字符序列。)

顺便说一下,你似乎在试图摆脱所有的空白字符。

在这种情况下,你可以这样做:

// Split() is a psuedo-overload that treats all whitespace
// characters as separators.
string result = string.Concat(comments.Split()); 

你试过使用正则表达式吗?他们很擅长处理这类任务

result = Regex.Replace(result, @"'r'n?|'n", " ");

要删除所有换行符,无论环境或格式错误的字符串,我认为这是最简单的选择:

var singleLineString = multilineString.Replace("'r", string.Empty).Replace("'n", string.Empty);

你的问题是@符号。在这种情况下没有必要。

你想要的

comments.Replace("'r'n", "");

使用该代码替换新行

myString = myString. replace (System.Environment. replace)