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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© blackstones1 中级黑马   /  2014-7-2 21:51  /  861 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class aaa
{
        public static void main(String[] args)
        {       
          
            char[] str1 = {'0','1'};
                str1[1] = (char)2;
                char[] str2 = {'0','1'};
                str2[1] = (char)(2+'0');
                System.out.println(str1[1]);
                System.out.println(str2[1]);
       
        }
}
打印结果如下  求指点

2 个回复

倒序浏览
不知楼主是哪里不明白?作这道题,你首先要知道数据类型取值范围以及强制类型转换之间的关系, str1[1] = (char)2;这一句实现的是把整型2转换为对应的字符型,也就是对应的assic码值为2的符号赋值给数组的第二个数,刚好2对应的字符为笑脸;str2[1] = (char)(2+'0');这句就是先运算后进行强制转换,"0"字符先自动转换为整型,对应的assic码值为48,48+2等于50,然后将50转化为字符型,就是得到50对应的字符型,为2,这就得出了结果!
回复 使用道具 举报 1 0
是这样啊 谢谢了{:3_57:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马