Подтвердить что ты не робот

Как удалить '\ 0' из строки в С#?

Я хотел бы знать, как удалить '\ 0' из строки. Это может быть очень просто, но это не для меня, так как я новый разработчик С#.

У меня есть этот код:

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

Итак, есть ли способ сделать это с помощью простого кода?

4b9b3361

Ответ 1

Кажется, вам просто нужна функция 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);   
    }
}

Ответ 2

Я использую: something.TrimEnd('\0')

Ответ 3

вам просто нужно Replace it

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

Ответ 4

Попробуйте следующее:

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

Ответ 5

Это был первый результат в Bing, и у него не было моего предпочтительного метода, который

string str = "MyString\0\0\0\0".Trim('\0');

Ответ 6

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

Ответ 7

Держите его глупо простым = *

return stringValue.Substring(0, stringValue.IndexOf('\0'));

Ответ 8

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

String.Replace() заменит все \0 пустой строкой, тем самым удалив их.

Ответ 9

Я знаю, что я опаздываю здесь, но, в то время как 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");

Ответ 10

Это может иметь более быстрый результат, если вы используете LINQ

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

Ответ 11

Эта строка должна работать:

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