黑马程序员技术交流社区

标题: 关于字符数组强制转换 [打印本页]

作者: blackstones1    时间: 2014-7-2 21:51
标题: 关于字符数组强制转换
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]);
       
        }
}
打印结果如下  求指点


作者: 钱途mo路    时间: 2014-7-2 22:04
不知楼主是哪里不明白?作这道题,你首先要知道数据类型取值范围以及强制类型转换之间的关系, str1[1] = (char)2;这一句实现的是把整型2转换为对应的字符型,也就是对应的assic码值为2的符号赋值给数组的第二个数,刚好2对应的字符为笑脸;str2[1] = (char)(2+'0');这句就是先运算后进行强制转换,"0"字符先自动转换为整型,对应的assic码值为48,48+2等于50,然后将50转化为字符型,就是得到50对应的字符型,为2,这就得出了结果!
作者: blackstones1    时间: 2014-7-3 10:43
是这样啊 谢谢了{:3_57:}




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