我有一个以下格式的字符串
string s = "This is a Test String.\n This is a next line.\t This is a tab.\n'
Run Code Online (Sandbox Code Playgroud)
我想删除的所有事件\n,并\r从上面的字符串.
我试过string s = s.Trim(new char[] {'\n', '\r'});但它没有帮助.
Kir*_*irk 279
我喜欢使用正则表达式.在这种情况下,您可以这样做:
string replacement = Regex.Replace(s, @"\t|\n|\r", "");
Run Code Online (Sandbox Code Playgroud)
正则表达式在.NET世界中并不像动态语言那样流行,但它们提供了很多操作字符串的能力.
jas*_*son 66
您想用来String.Replace删除一个角色.
s = s.Replace("\n", String.Empty);
s = s.Replace("\r", String.Empty);
s = s.Replace("\t", String.Empty);
Run Code Online (Sandbox Code Playgroud)
请注意,String.Trim(params char[] trimChars)仅从trimChars调用的实例中删除前导和尾随字符.
你可以制作一个扩展方法,避免上面制作大量临时字符串的性能问题:
static string RemoveChars(this string s, params char[] removeChars) {
Contract.Requires<ArgumentNullException>(s != null);
Contract.Requires<ArgumentNullException>(removeChars != null);
var sb = new StringBuilder(s.Length);
foreach(char c in s) {
if(!removeChars.Contains(c)) {
sb.Append(c);
}
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
ᴍᴀᴛ*_*ᴋᴇʀ 35
我知道这是一个旧帖子,但我想我会分享我用来删除新行字符的方法.
s.Replace(Environment.NewLine, "");
Run Code Online (Sandbox Code Playgroud)
参考文献:
MSDN String.Replace方法和MSDN Environment.NewLine属性
cdh*_*wie 13
如果速度和内存使用率很低,请执行以下操作:
var sb = new StringBuilder(s.Length);
foreach (char i in s)
if (i != '\n' && i != '\r' && i != '\t')
sb.Append(i);
s = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
小智 5
就这样做
s = s.Replace("\n", String.Empty).Replace("\t", String.Empty).Replace("\r", String.Empty);
Run Code Online (Sandbox Code Playgroud)