Как удалить '\ 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";
Итак, есть ли способ сделать это с помощью простого кода?
Ответы
Ответ 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);