使用C#删除换行符
我从名为’Description’的数据库字段中获取一个字符串,它有换行符。 它看起来像这样:
物品标题
描述在这里。这是项目的描述。
如何删除换行符。 我尝试了以下function,但它无法正常工作:
public string FormatComments(string comments) { string result = comments.Replace(@"\r\n\", ""); result = result.Replace(" ", ""); return result; }
请建议解决方案。
此致,Asif Hameed
主要原因是您使用的是逐字字符串文字 (以@
开头)并以文字\
结尾。 结果是, 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", " ");
你的问题是@符号。 在这种情况下没有必要。
你要
comments.Replace("\r\n", "");
为了删除所有换行符,无论环境或字符串格式错误,我认为这是最简单的选择:
var singleLineString = multilineString.Replace("\r", string.Empty).Replace("\n", string.Empty);
使用该代码替换新行
myString = myString.Replace(System.Environment.NewLine,“替换文本”);