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

Dav*_*deg 34 c#

我想知道如何从字符串中删除'\ 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);   
      }
}
Run Code Online (Sandbox Code Playgroud)

但我想要的是:

msg.body="TestStrg.\r\nTest\r\n";
Run Code Online (Sandbox Code Playgroud)

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

Nol*_*rin 47

看来你只想要这个string.Replace函数(静态方法).

var cleaned = input.Replace("\0", string.Empty);
Run Code Online (Sandbox Code Playgroud)

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

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);   
    }
}
Run Code Online (Sandbox Code Playgroud)


har*_*eyt 32

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


ani*_*key 9

你只需要替换

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);    
Run Code Online (Sandbox Code Playgroud)

  • @Noldorin,这是一个非常粗鲁的3分钟差异. (8认同)

Iai*_*ard 6

试试这个:

msg.Body = msg.Body.Replace("\0", "");
Run Code Online (Sandbox Code Playgroud)


小智 5

这是Bing的第一个结果,并且没有我的首选方法,即

string str = "MyString\0\0\0\0".Trim('\0');
Run Code Online (Sandbox Code Playgroud)


red*_*rot 5

如果使用 LINQ,结果可能会更快

str.TakeWhile(c => c != '\0');
Run Code Online (Sandbox Code Playgroud)

Linq 具有更好更快的性能。