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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 仲伟 中级黑马   /  2013-5-12 12:23  /  1455 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 仲伟 于 2013-5-13 13:00 编辑

char c =' "  ' ;
Character(c);
character c1 = '1';
int n1 =Character.getType(c1);
int n2=(int)c1.charValue();
system.out.print(n1==n2);
false;
谁能给我具体解释一下

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

8 个回复

倒序浏览
乱码了,看不清。
回复 使用道具 举报
任江峰 发表于 2013-5-12 14:09
乱码了,看不清。

非常抱歉,因为我的上面的东西,是直接从API
文档中copy出来的
回复 使用道具 举报
int n1 =Character.getType(c1);返回一个值,表示一个字符的一般类别。这里整数1对应的类别是9
int n2=(int)c1.charValue();返回c1字符所对应的ascii码值。这里整数1对应的是49
n1=9
n2=49
所以==的值是false

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 很给力!

查看全部评分

回复 使用道具 举报
楼上说的很对,Character.getType(c1)返回的是一般类别,并不是字符对应值,它和charValue()没有什么关系。这不是char强制转换为int造成的,因为这本身就是两数。所以最后是false。
回复 使用道具 举报
任江峰 发表于 2013-5-12 14:41
int n1 =Character.getType(c1);返回一个值,表示一个字符的一般类别。这里整数1对应的类别是9
int n2=(int ...

就说为什么导致这个发生 的啊
回复 使用道具 举报
仲伟 中级黑马 2013-5-12 16:50:16
7#
张金铎 发表于 2013-5-12 15:22
楼上说的很对,Character.getType(c1)返回的是一般类别,并不是字符对应值,它和charValue()没有什么关系。 ...

强制类型转化为什么出来这个问题啊。强制类型转化都会出现什么结果啊
回复 使用道具 举报
仲伟 发表于 2013-5-12 16:50
强制类型转化为什么出来这个问题啊。强制类型转化都会出现什么结果啊

我觉得你思考的方式还是不对,这不是类型的问题,getType()和charValue()两个方法返回的值本来就不是一回事。比我类里面一个是public int getAge()方法,一个是public int getScore()方法;一个返回年龄一个返回学分,这俩值不相等是正常的。getType()和charValue()两个方法的关系也是这么回事。一个返回一般类型一个返回ascii码值,所以不相等。即使相等也是巧合。
回复 使用道具 举报
仲伟 中级黑马 2013-5-12 21:37:23
9#
张金铎 发表于 2013-5-12 21:23
我觉得你思考的方式还是不对,这不是类型的问题,getType()和charValue()两个方法返回的值本来就不是一回 ...

哦,她们值原来是不一样的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马