读书人

从代码模板到代码解决方法

发布时间: 2011-12-31 23:50:30 作者: rapoo

从代码模板到代码
代码模板为
string templete = " "http://www.myside.com/default.aspx?a=stra&b=strb&c=strc " "

现在已知 a=100,b=150,c=20
求一个函数需要生成如下代码

"http://www.myside.com/default.aspx?a=100&b=150&c=20 "

[解决办法]
//为什么不这样?
int a = 100;
int b = 150;
int c = 20;

string templete = @ "http://www.myside.com/default.aspx?a={0}&b={1}&c={2} ";
Text = string.Format(templete, a, b, c);

[解决办法]
//这样可以吗?
string templete = @ "http://www.myside.com/default.aspx?a= <%a%> &b= <%b%> &c= <%c%> ";
templete = templete.Replace( " <%a%> ", a.ToString());
templete = templete.Replace( " <%b%> ", b.ToString());
templete = templete.Replace( " <%c%> ", c.ToString());

[解决办法]
public string formatStr(string query, string obstruct)
{
if (!query.Contains(obstruct))
return string.Empty;

StringBuilder sbStr = new StringBuilder();
int startPosition = 0;
int endPosition = 0;

startPosition = query.IndexOf(obstruct, 0, query.Length);

if (startPosition <= 0)
return string.Empty;

endPosition = query.IndexOf( "& ", (startPosition + obstruct.Length));

if (endPosition <= 0)
{
endPosition = query.Length;
}

sbStr.Append(query.Substring((startPosition + obstruct.Length), (endPosition - (startPosition + obstruct.Length)))); ///(j+obstruct.Length),i-j)

return sbStr.ToString();
}

读书人网 >C#

热点推荐