黑马程序员技术交流社区
标题: 转换类型int.parse/int.TryParse区别是? [打印本页]
作者: 叮当 时间: 2014-7-19 20:04
标题: 转换类型int.parse/int.TryParse区别是?
本帖最后由 叮当 于 2014-8-1 19:46 编辑
特别是TryParse,学着学着就有点不明白了,它是不是可以转换成是数字也可以是字符串?
作者: _xixi_ 时间: 2014-7-19 21:04
本帖最后由 _xixi_ 于 2014-7-19 21:10 编辑
两者的原型分别为:public static int Parse(string s);public static bool TryParse(string s,out int result);
int.Parse 和 int.TryParse 针对操作的都是数字字符串,不同的地方在于,
int.Parse 在操作非数字字符串的时候会抛出异常;
int.TryParse 操作非数字字符串的时候,返回false,并且result=0
作者: weiwei10153 时间: 2014-7-19 21:12
本帖最后由 weiwei10153 于 2014-7-19 21:14 编辑
这两个方法用来把字符串转换为整型数字
int.Parse(string str) 返回值为int类型,如果转换失败会报错
int.TryParse(string str,out int number) 返回值为bool类型,如果转换成功,返回True,并把转换后的结果保存到变量number中,转换失败,不会报错,返回false,返回的值为0
作者: 天佑の清清 时间: 2014-7-20 11:22
1.(int)变量名[强制类型转换]
该转换方式主要用于数字类型之间的转换,从int类型向long,float,double,decimal 类型转换可以使用隐式转换,但从long型到int 就需要使用显示转换,即使用该类型的转换方式否则产生编译错误。
该方式对于浮点数会无条件的舍去,会失去精确度
对于char类型的到int类型的转换,传回的值是ASCII码
2.int.Parse(string 变量名)
该方式是将数字内容的字符串转换为int类型,如果字符串的内容为Null ,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常。
使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内
3.int.TryParse(string s, out int result)
该方式也是将数字内容的字符串转换为int类型,但是该方式有比int.Parse 优越的地方,就是它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。
4. Convert.ToInt32
该方式不仅可以将字符串类型转换为int,还可以将其他的类型转换为int。变量若为object或string类型,当其值为Nul时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,转换成int时,程序仍会出错。
这次四个都有 ,大家一起学习,一起进步
作者: suzhousongkan 时间: 2014-7-20 12:16
学习了,是得多写写才知道习惯用法啊!
作者: czwanglei 时间: 2014-7-20 12:26
当有人给你回复后,请及时把帖子编辑为提问结束,这样版主才给你加分。
作者: qsq0000hm 时间: 2014-7-20 18:23
int.parse 就是对字符串进行转换成int类型。如果字符串无法转换则报错,抛异常。
int.TryParse 不会报错,它整个表达式的返回值是一个bool类型的。比如
int a;
bool b=int.TryParse("123",out a);
如果字符串能够转换成功,则b==true。并且转换后的值就是a的值。
int.parse("123")就直接转,如果转换成功,那么整个表达式的返回值就是转换后的值,如果不成功,抛异常。
作者: 麦田怪圈 时间: 2014-7-21 18:28
路过学习了!
作者: 别问我是谁 时间: 2014-7-24 21:37
int.Parse转换失败时会报错,int.TryParse不会报错
作者: Kevion小远 时间: 2014-7-24 22:12
int.Parse是将数字内容的字符串转换为int类型,如果字符串的内容为Null ,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常。
int.TryParse是将数字内容的字符串转换为int类型,但是该方式有比int.Parse 优越的地方,就是它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。
作者: SunshineGirl 时间: 2014-7-29 16:06
有同学给你回答了及时设置成提问结束,这样版主才能给你本人加分。
作者: czwanglei 时间: 2014-7-30 21:05
同学你好,当有人给你回复后,请你及时把帖子编辑为提问结束,这样版主才给你加分。
作者: 倚楼听雨 时间: 2014-7-30 22:27
int.Parse(string 变量名)
该方式是将数字内容的字符串转换为int类型,如果字符串的内容为Null ,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常。
使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内
int.TryParse(string s, out int result)
该方式也是将数字内容的字符串转换为int类型,但是该方式有比int.Parse 优越的地方,就是它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。
作者: rende1991 时间: 2014-7-31 07:40
int.Parse()方法转换失败的时候返回异常,int.TryParse()返回的是bool类型的,转换失败不发出异常,返回false。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |