黑马程序员技术交流社区

标题: 数据类型转换问题 [打印本页]

作者: 郎泽东    时间: 2013-4-18 18:39
标题: 数据类型转换问题
本帖最后由 郎泽东 于 2013-4-21 10:03 编辑

为什么浮点数可以直接用强制转换如,int b=(int)a (ps :a 是浮点型),而string 类型不能 int b = (int) a[1];(a 为string 类型)?
作者: 殇_心。    时间: 2013-4-18 19:03
因为String与int不是一个类型。
String是引用类型,而int是整数类型。
就这么说吧,它们两没任何关系。
作者: 黑马—严守卫    时间: 2013-4-18 19:56
可以转,不过string数组的元素得看起来像数值,如果是其他字符串会抛异常。
作者: up.yfei    时间: 2013-4-19 12:31
如果String里面是数字的话,可以用  int c = Integer.parseInt("3");  这样,转过之后就是int类型的了。
作者: 蒋名勇    时间: 2013-4-20 10:38
这个是一种为了防止转换异常,或者数据丢失的机制,因为字符串中如果不止包含数字还有字符的时候,那当然就转不成数字,还有就是要数据类型一致的时候才能使用前面加上小括号进行强制转换,如果是要实现引用类型与基本数据类型之间的转换,一般都是用Integer.parseInt()方法,或者是Integer.valueOf()方法
作者: gerenvip    时间: 2013-4-20 10:52
int 和String不是同一种数据类型,int属于基本数据类型,String属于引用数据类型,
java中基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double
一般情况下String类型是不能转换成基本数据类型的。
楼上说的通过Integer中的parseInt方法把字符串转成基本数据类型int
或者通过Long类型中的parseLong方法把字符串转成基本数据类型long
但我觉得不是完整意义上的类型转换,它要求:除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字


作者: 黄玉昆    时间: 2013-4-20 14:45
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2