假设有下面的这个方法:
public string fun1(string input,int length)
{
string strReturn = input;
for (int i = 0; i < length - input.Length; i++)
{
strReturn = "0" + strReturn;
}
return strReturn;
}
调用:fun1("790",4); -->最后的结果:0790
fun1("1234",5); -->最后的结果:01234
那么设想一下,有这样的一个需求:
给你一个int型的数字比如说是int temp = 790,要你转换成“abc0790”【7位;abc一定要有;除去abc后剩下的不足4位的补0】!
那么我相信很多的人会犯一个这样的错误:获取temp的长度
int temp = 790;
int j = 0;
for (int i = 1; int1 > 9; i++)
{
int1 /= 10;
j+= i;
}
这样获得到了temp的长度j,然后在用if 。。。 else。。。来判断,需要给参数补多少个0!
很显然是很麻烦!我们用上面的fun1,在返回的时候:return (“abc” + strReturn)就OK!
如果我猜得没错的话,很多的时候我们被表面的东西误导了,他需要int型的参数,我们就只考虑了int,或许连转换成string都没考虑!
显然“temp。Length”是没有的,但是string aa = temp。toString(),那么aa。Length不就是temp的长度吗???
然后,我们的另外一个页面上有TextBox,通过输入“abc0790”获得到相应的数据,再怎么考虑呢?
我希望大家别被上面的给误导了。。。
存储过程里查询的sql语句只需要ID,ID前面的头不要,那么怎么去掉呢?
string sql = “select * from Info where id = ” + ID;
页面上的控件:
编号:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="查找" />
他需要只是后面的ID,那么我们可以去掉字母“abc”,转换成int后,前面的0就自己去掉了!
int bb = Convert.ToInt32(temp.value.Replace("abc",""));
bb = 790;
最后得到的结果跟预期一样!
以上的东西仅供参考,如有疑问可以在线联系!