使用ASP.Net和C#,如何用一个字符串替换多个字符串?
在我的代码中,我使用此循环来获取结果,但最后一个参数是唯一填充的参数。
public void smssend(string CustomerName,string from,string to,string date,string time)
{
con.Open();
string str1 = "select * from Master ";
SqlCommand command1 = new SqlCommand(str1, con);
SqlDataReader reader1 = command1.ExecuteReader();
while (reader1.Read())
{
Label1.Text = reader1["Template"].ToString();
}
reader1.Close();
string desc = Label1.Text;
string[] BadCharacters = { "1", "2", "3", "4","5" };
string[] GoodCharacters = { CustomerName, from, to, date,time };
string strReplaced = "";
int i;
for(i=0; i<=4; i++)
{
strReplaced = desc.Replace(BadCharacters[i], GoodCharacters[i]);
}
Label1.Text = strReplaced;
输出:
1 and 2 and 3 and 4 and 12:00:00
如何正确连接多个字符串?
答案 0 :(得分:5)
您在每次循环运行中覆盖strReplaced
。看起来你想要这个:
for(i=0; i<=4; i++)
{
desc = desc.Replace(BadCharacters[i], GoodCharacters[i]);
}
Label1.Text = desc;
答案 1 :(得分:2)
尝试将每次替换的结果分配给strReplaced
string strReplaced = desc;
int i;
for(i=0; i<=4; i++)
{
strReplaced = strReplaced.Replace(BadCharacters[i], GoodCharacters[i]);
}
Label1.Text = strReplaced;
答案 2 :(得分:1)
int i;
for(i=0; i<=4; i++)
{
strReplaced = **desc**.Replace(BadCharacters[i], GoodCharacters[i]);
}
替换为:
int i;
var strReplaced = desc;
for(i=0; i<=4; i++)
{
strReplaced = **strReplaced**.Replace(BadCharacters[i], GoodCharacters[i]);
}
答案 3 :(得分:0)
其余答案中的代码很好,但只是一个注释。如果您使用for循环替换一个字符串中的所有内容,那么当您使用日期覆盖BadCharacter值时,之后的迭代可能会使用时间变量中的GoodCharacter值替换日期中的数字。为了解决这个问题,我建议将BadCharacter数组的值更改为更独特的值,这样就不会有覆盖好值的风险。
答案 4 :(得分:0)
String.Join会成为你想要的东西吗?它允许您使用指定的分隔符连接多个字符串。