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

时间:2010-08-02 12:27:46

标签: 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);   
      }
}

但我想要的是:

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

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

10 个答案:

答案 0 :(得分:44)

您似乎只想要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);   
    }
}

答案 1 :(得分:30)

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

答案 2 :(得分:9)

你只需要Replace

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);    

答案 3 :(得分:6)

试试这个:

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

答案 4 :(得分:2)

msg.body = sBody.Replace("\0", "");

答案 5 :(得分:2)

保持简单愚蠢= *

" java.lang.ClassCastException: [Ljava.lang.Object; 
cannot be cast to [Ljava.lang.Comparable;

答案 6 :(得分:1)

var str = "TestStrg.\r\nTest\0\0\0\0\0\0\0\0\0\r\n".Replace("\0", "");

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

答案 7 :(得分:1)

我知道我已经迟到了,但是,虽然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");

答案 8 :(得分:0)

此行应该有效:

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

答案 9 :(得分:0)

如果您使用linq,结果可能会更快

str.TakeWhile(c => c!='\ 0');