又有问题了...

来源:百度知道 编辑:UC知道 时间:2024/05/09 02:52:12
我按书中的例子打出:
public class fas{
public static void main(String args []){
char a1='十',a2='点',a3='进',a4=‘攻';
char secret='8';
a1=(char) (a1^secert);
a2=(char) (a2^secert);
a3=(char) (a3^secert);
a4=(char) (a4^secert);
System.out.println("秘密"+a1+a2+a3+a4);
a1=(char) (a1^secert);
a2=(char) (a2^secert);
a3=(char) (a3^secert);
a4=(char) (a4^secert);
System.out.println("原文"+a1+a2+a3+a4);}}编译时dos这样报告:fas.java:3:非法字符: \8216
char a1='十',a2='点',a3='进',a4=‘攻';然后分别在a, 4, =下面画了三个三角。
请问非法字符\8216是什么类型的错误?未结束的字符字面值呢?我想通过这个就应该知道是哪里出错了吧?千恩万谢!
嗯。谢谢了,运行出来了,但是原文我理解,秘密是怎么生成的您能说一下么?

secert拼写错了
应该是secret

a4=‘攻'拼写错了
应该是
a4='攻'

补充:
secret是个变量
只要是前后一样就可以

在我的机器上
你的程序已经跑过了
我的机器不是中文系统
所以我把中文字符改了改

public static void main(String[] args) {

char a1='A',a2='B',a3='C',a4='D';
char secret='8';
a1=(char) (a1^secret);
a2=(char) (a2^secret);
a3=(char) (a3^secret);
a4=(char) (a4^secret);
System.out.println("EEEEEE"+a1+a2+a3+a4);
a1=(char) (a1^secret);
a2=(char) (a2^secret);
a3=(char) (a3^secret);
a4=(char) (a4^secret);
System.out.println("FFFFFF"+a1+a2+a3+a4);
}