[英]Removing line breaks using C#
我從數據庫字段中獲取一個名為'Description'的字符串,它有換行符。 它看起來像這樣:
物品標題
描述在這里。這是項目的描述。
如何刪除換行符。 我嘗試了以下功能,但它無法正常工作:
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", " ");
為了刪除所有換行符,無論環境或字符串格式錯誤,我認為這是最簡單的選擇:
var singleLineString = multilineString.Replace("\r", string.Empty).Replace("\n", string.Empty);
你的問題是@符號。 在這種情況下沒有必要。
你要
comments.Replace("\r\n", "");
使用該代碼替換新行
myString = myString.Replace(System.Environment.NewLine,“替換文本”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.