Answers:
这将从以下末尾清除回车符和换行符的所有组合s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
编辑:或如JP所指出的那样,您可以更简洁地将其拼写为:
s = s.TrimEnd('\r', '\n');
s = s.TrimEnd()
-正如文档所述: 如果trimChars为null或为空数组,则会删除Unicode空格字符。-参见String.TrimEnd
'\r'
,'\n'
没有其他要求,' '
例如空格字符。
如果使用多个平台,则使用此方法会更安全。
value.TrimEnd(System.Environment.NewLine.ToCharArray());
它将说明不同的换行符和回车符。
tst.TrimEnd( '\r', '\n' )
-因为主要是EOLS [当前]的只是不同的连击是在实践中合理的“安全” \r
和\n
,但alexw的是“正确”的答案。让CLR告诉您此平台的换行符中的字符。 EOL并非一直都是0D和0As的组合
Environment.NewLine
,但它似乎没有处理情况,其中\r
存在无\n
。 TrimEnd('r','\n')
在这种情况下似乎更可靠。
String temp = s.Replace("\r\n","").Trim();
s
是原始字符串。(注意大写)
replace()
则trim()
不会矫枉过正的时候TrimEnd()
单独可以做的工作,还是我失去了一些东西?
如果始终有一个CRLF,则:
myString = myString.Substring(0, myString.Length - 2);
如果可能有或没有,那么:
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
这两种(根据设计)最多将删除一个CRLF。缓存正则表达式以提高性能。
这太简单了-对我来说,我正在过滤掉某些电子邮件项目。我正在编写自己的自定义电子邮件垃圾邮件过滤器。字符串中有\ r和/或\ n会清除所有项目,而不是进行过滤。
因此,我只做了filter = filter.Remove('\ n')和filter = filter.Remove('\ r')。我正在做过滤器,以便最终用户可以使用记事本直接编辑文件,因此不知道这些字符可能会嵌入到何处-可能不是在字符串的开头或结尾。因此,将它们全部删除即可。
其他条目都可以使用,但是“删除”可能是最简单的?
我从这篇文章中学到了更多关于Regex的知识-在这里使用它非常不错的工作。
filter = filter.Remove('\n').Remove('\r');
我使用很多擦除级别
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.Replace("\r","").Replace("\n","")