問題描述
從C#中的字符串末尾刪除回車符和換行符 (Removing carriage return and new‑line from the end of a string in c#)
How do I remove the carriage return character (\r)
and the new line character(\n)
from the end of a string?
‑‑‑‑‑
參考解法
方法 1:
This will trim off any combination of carriage returns and newlines from the end of s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
Edit: Or as JP kindly points out, you can spell that more succinctly as:
s = s.TrimEnd('\r', '\n');
方法 2:
This should work ...
var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd( '\r', '\n' );
方法 3:
String temp = s.Replace("\r\n","").Trim();
s
being the original string. (Note capitals)
方法 4:
If you are using multiple platforms you are safer using this method.
value.TrimEnd(System.Environment.NewLine.ToCharArray());
It will account for different newline and carriage‑return characters.
方法 5:
s.TrimEnd();
The above is all I needed to remove '\r\n' from the end of my string.
The upvoted answer seems wrong to me. Firstly, it didn't work when I tried, secondly, if it did work I would expect that s.TrimEnd('\r', '\n') would only remove either a '\r' or a '\n', so I'd have to run it over my string twice ‑ once for when '\n' was at the end and the second time for when '\r' was at the end (now that the '\n' was removed).
(by Avik、RichieHindle、JP Alioto、Crash893、Alex Wiese、martinp999)