如何从C#中的字符串中删除’\ 0’?

我想知道如何从字符串中删除’\ 0’。 这可能非常简单但不适合我,因为我是一名新的C#开发人员。

我有这段代码:

public static void funcTest (string sSubject, string sBody) { Try { MailMessage msg = new MailMessage(); // Set up e-mail message. msg.To = XMLConfigReader.Email; msg.From = XMLConfigReader.From_Email; msg.Subject = sSubject; msg.body="TestStrg.\r\nTest\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\n"; } catch (Exception ex) { string sMessage = ex.Message; log.Error(sMessage, ex); } } 

但我想要的是:

 msg.body="TestStrg.\r\nTest\r\n"; 

那么,有没有办法用简单的代码来做到这一点?

看来你只需要string.Replace函数(静态方法)。

 var cleaned = input.Replace("\0", string.Empty); 

编辑:这是完整的代码,按要求:

 public static void funcTest (string sSubject, string sBody) { try { MailMessage msg = new MailMessage(); msg.To = XMLConfigReader.Email; msg.From = XMLConfigReader.From_Email; msg.Subject = sSubject; msg.Body = sBody.Replace("\0", string.Empty); } catch (Exception ex) { string sMessage = ex.Message; log.Error(sMessage, ex); } } 

我用: something.TrimEnd('\0')

你只需要替换它

 msg.body="TestStrg.\r\nTest\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\n".Replace("\0", string.Empty); 

试试这个:

 msg.Body = msg.Body.Replace("\0", ""); 

这是Bing的第一个结果,它没有我喜欢的方法,也就是说

 string str = "MyString\0\0\0\0".Trim('\0'); 
 msg.body = sBody.Replace("\0", ""); 

保持简单愚蠢= *

 return stringValue.Substring(0, stringValue.IndexOf('\0')); 
 var str = "TestStrg.\r\nTest\0\0\0\0\0\0\0\0\0\r\n".Replace("\0", ""); 

String.Replace()将用空字符串替换所有\0 ,从而删除它们。

我知道我已经迟到了,但是,虽然String.Replace大部分时间都在工作,我发现我更喜欢这个正则表达式版本,并且在大多数情况下更可靠

 using System.Text.RegularExpressions; ... msg.body=Regex.Replace("TestStrg.\r\nTest\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\n","\0"); 

该行应该有效:

 string result = Regex.Replace(input, "\0", String.Empty);