2012-02-22 39 views
3

我想知道是否有方法用'\ n'替換CRLF的所有實例。有沒有辦法做到這一點?String.Replace CRLF' n'

+0

爲什麼? 'CrLf == \ r \ n' – Oded 2012-02-22 18:43:26

+7

您是否嘗試過使用String.Replace(「\ r \ n」,「\ n」)'? – ChaosPandion 2012-02-22 18:43:33

+0

http://stackoverflow.com/questions/841396/what-is-a-quick-way-to-force-crlf-in-c-sharp-net – 2012-02-22 18:48:07

回答

-1

我認爲它看起來像我一直在試圖取代錯的方向。

String.Replace('\n', '\r') 

VS

String.Replace('\r', '\n') 

似乎的,彷彿一切都是現在的工作。

22

你有什麼試過,這是行不通的? CRLF意思是carriage return,line feed。回車\r,換行是\n所以用換行符替換CRLF將

value = value.Replace("\r\n", "\n"); 

這就像任何其他字符串替換。請注意,Replace是一種返回新字符串的方法,因此您需要將結果返回給某個變量,在大多數情況下,它可能與您已使用的變量名稱相同。

編輯:根據您的評論下面,您可能錯誤CRLF基於記事本++的行尾轉換設置LF。在hex editor中打開文件以查看真正存在的內容。你會看到CRLF爲0D 0A(所以回車是0D和換行是0A)。 Notepad ++會告訴你你想看到什麼。通過點擊Edit > EOL Conversion > UNIX Format檢查您的行尾轉換,即使CRLF存在,它也會顯示LF而不是CRLF。

1

如果你真的想更換一個回車/換行對有明確的字符串「\ n」您需要轉義反斜線:

value = value.Replace("\r\n", "\\n"); 
+0

@Bob和^^^ 我已經試過這兩個技術。但是當我在記事本中打開文件(view-> show symbol->顯示行尾字符)時,我仍然可以看到CRLF符號。所以我猜測它沒有用。 – SoftwareSavant 2012-02-22 19:58:22

+0

好的,你正在處理一個文件。你使用'ReadLine'和'WriteLine'來訪問文件嗎?由於他們處理行分隔符,你可能會絆倒自己。 – HABO 2012-02-22 20:34:53

+0

在十六進制編輯器中查看您的documnet並在其中進行驗證。在「編輯> EOL轉換」下,Notepad ++可能會根據您的EOL設置看到它所看到的內容。如果您選擇Unix格式,它將顯示LF而不是CRLF。 – Bob 2012-02-22 21:02:38