我想知道如何从字符串中删除'\ 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";
那么,有没有办法用一个简单的代码来做到这一点?
答案 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');