A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郎泽东 中级黑马   /  2013-4-18 18:39  /  2000 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郎泽东 于 2013-4-21 10:03 编辑

为什么浮点数可以直接用强制转换如,int b=(int)a (ps :a 是浮点型),而string 类型不能 int b = (int) a[1];(a 为string 类型)?

点评

鼓励鼓励  发表于 2013-4-18 20:24

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

7 个回复

正序浏览
黄玉昆 黑马帝 2013-4-20 14:45:38
7#
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
int 和String不是同一种数据类型,int属于基本数据类型,String属于引用数据类型,
java中基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double
一般情况下String类型是不能转换成基本数据类型的。
楼上说的通过Integer中的parseInt方法把字符串转成基本数据类型int
或者通过Long类型中的parseLong方法把字符串转成基本数据类型long
但我觉得不是完整意义上的类型转换,它要求:除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
这个是一种为了防止转换异常,或者数据丢失的机制,因为字符串中如果不止包含数字还有字符的时候,那当然就转不成数字,还有就是要数据类型一致的时候才能使用前面加上小括号进行强制转换,如果是要实现引用类型与基本数据类型之间的转换,一般都是用Integer.parseInt()方法,或者是Integer.valueOf()方法

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果String里面是数字的话,可以用  int c = Integer.parseInt("3");  这样,转过之后就是int类型的了。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
可以转,不过string数组的元素得看起来像数值,如果是其他字符串会抛异常。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
因为String与int不是一个类型。
String是引用类型,而int是整数类型。
就这么说吧,它们两没任何关系。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马