日期:2014-05-18  浏览次数:20486 次

如何把string转换为int
最好先判断能不能转换
再转换
例如把“123”转换为123

------解决方案--------------------
int.Parse( "123 ")
------解决方案--------------------
int str;
try
{
str=Convert.ToInt32( "123 ");
}
catch
{
//不能转换
}
------解决方案--------------------
/// <summary>
/// 判断字符串是否是数字
/// </summary>
/// <param name= "strIn "> </param>
/// <returns> </returns>
public static bool bolIsNum(string strIn)
{
bool bolResult=true;
if(strIn==String.Empty)
bolResult=false;
else
{
foreach(char Char in strIn)
{
if(char.IsNumber(Char))
continue;
else
{
bolResult=false;
break;
}
}
}
return bolResult;
}
------解决方案--------------------
转一个以前看到的:
Convert.ToInt32()和int.Parse()的区别

试验进行一亿次转换的时间,结果相同,说明这两个在将字符串转换为整数时基本没区别.(40多秒差0.x秒,应该算是没差别吧)


这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.QueryString[ "page "]),也可以用,int.Parse(Request.QueryString[ "page "]),但是如果page这个参数在url中不存在,那么前者将返回0,0可能是一个有效的值,所以你不知道url中原来根本就没有这个参数而继续进行下一下的处理,这就可能产生意想不到的效果,而用后一种办法的话没有page这个参数会抛出异常,我们可以捕获异常然后再做相应的处理,比如提示用户缺少参数,而不是把参数值当做0来处理。