如何从字符串末尾删除回车符
(\r)
和Unix换行符(\n)
?这将从s
的末尾修剪掉任何回车符和换行符的组合:
s = s.TrimEnd(new char[] { '\r', '\n' });
编辑: 正如JP友善地指出的那样,您可以更简洁地拼写为:
s = s.TrimEnd('\r', '\n');
这应该可以运行...
var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd( '\r', '\n' );
String temp = s.Replace("\r\n","").Trim();
s
是原始字符串。(注意大写字母)
replace()
和trim()
一起使用是否有点过度,因为只用TrimEnd()
就足够了,或者我漏掉了什么? - ᴍᴀᴛᴛ ʙᴀᴋᴇʀs.Replace("\n","").Replace("\r","").trim()
。 - undefined如果你正在使用多个平台,使用这种方法会更安全。
value.TrimEnd(System.Environment.NewLine.ToCharArray());
它将考虑不同的换行符和回车符。
tst.TrimEnd('\r', '\n')
——在实践中是相当“安全”的,因为主要的EOLs [目前]只是\r
和\n
的不同组合,但alexw的答案才是“正确”的。让CLR告诉你这个平台的换行符是什么字符。EOL并不总是由0D和0A组成。 - ruffinEnvironment.NewLine
,但它似乎无法处理没有 \n
的 \r
实例。在这种情况下,TrimEnd('r','\n')
更加可靠。 - ᴍᴀᴛᴛ ʙᴀᴋᴇʀs.TrimEnd();
string k = "This is my\r\nugly string. I want\r\nto change this. Please \r\n help!";
k = System.Text.RegularExpressions.Regex.Replace(k, @"\r\n+", " ");
对于我们的 VBers:
TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf})
myString = myString.Substring(0, myString.Length - 2);
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
这两个方法(出于设计目的)最多只会删除一个CRLF。为了提高性能,可以缓存正则表达式。
filter = filter.Remove('\n').Remove('\r');
。 - John Saunders我使用了很多橡皮擦等级
String donen = "lots of stupid whitespaces and new lines and others..."
//Remove multilines
donen = Regex.Replace(donen, @"^\s+$[\r\n]*", "", RegexOptions.Multiline);
//remove multi whitespaces
RegexOptions options = RegexOptions.None;
Regex regex = new Regex("[ ]{2,}", options);
donen = regex.Replace(donen, " ");
//remove tabs
char tab = '\u0009';
donen = donen.Replace(tab.ToString(), "");
//remove endoffile newlines
donen = donen.TrimEnd('\r', '\n');
//to be sure erase new lines again from another perspective
donen.Replace(Environment.NewLine, "");
s = s.TrimEnd()
-因为文档上说:如果trimChars为null或空数组,则删除Unicode空白字符。 请参见String.TrimEnd。 - Stuart Wood