java编程的小问题,希望有人可以详细的解答一下

[复制链接]
查看11 | 回复1 | 2011-3-17 03:41:12 | 显示全部楼层 |阅读模式
class Example3_1
{public static void main(String args[])
{ char a1=\'十\',a2=\'点\',a3=\'进\',a4=\'攻\';

char secret=\'8\';

a1=(char)(a1^secret);

a2=(char)(a2^secret);

a3=(char)(a3^secret);

a4=(char)(a4^secret);

System.out.println(\"密文:\" a1 a2 a3 a4);}}
为什么我把\"密文:\" 去掉,输出就是一些数字了呢?
回复

使用道具 举报

千问 | 2011-3-17 03:41:12 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">这是JAVA的一个默认类型转换的特点:
不去掉“密文:”的情况:
前面有了“密文:”这个东西很显然是字符串,当字符串遇到“ ”后这个“ ”便不再是我们理解上的相加了,而是连接符,它会将下一个基本数据类型的a1转换成了字符串并连接到“密文:”之后变成“密文:恤”,现在“密文:恤”它又是一个字符串了同理将后面的cha依次转换成字符串连接上来最后就输出了“密文:恤炁迣攃”
去掉“密文:”的情况:
当去掉“密文:”后你要输出的内容就纯粹的是基本数据类型的cha了。单独输出一个cha值的话系统会输出正常的字符【即System.out.println(a1)得到的结果是“恤”】但是你将他们相加了,那么又是另一种情况了,系统将字符相加其实是默认的转换成了编码类型后相加。那么最终得到的自然是一个数值。
如果你想直接输出“恤炁迣攃”最简单的做法是System.out.println(\" \" a1 a2 a3 a4);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行