public class Code {
public static void main(String[] args) {
  String s="人民出版社";
  char a[]=s.toCharArray();
  for(int i=0;i<a.length;i++)
  { a[i]=(char)(a[i]^'t');//这儿的^'t'是什么意思
    
  }
String secret=new String(a);
System.out.println(secret);
}}

解决方案 »

  1.   

    http://baike.baidu.com/view/674171.htm
      

  2.   

    字符都有ascll码的吧  两个数字异或
      

  3.   

      public class Code {
    public static void main(String[] args) {
    String s="人民出版社";
    char a[]=s.toCharArray();
    for(int i=0;i<a.length;i++)
    { a[i]=(char)(a[i]^'t');//这儿的^'t'是什么意思
      
    }
    String secret=new String(a);
    System.out.println(secret);
    for (int i=0;i<a.length;i++){ a[i]=(char)(a[i]^'t');
    }
    String code=new String(a);
    System.out.println(code);
    }
    }
    这是完整的代码,没有错误。两次的异或运算secret是看不懂的文字,code是人民出版社。两个字符进行异或运算返回的是ascII码中的值,ascii值本来就是字符,怎么还需要(char)强制转换?还有就是第一次异或运算后的值和再次和't'异或运算怎么还原了???
      

  4.   

    两个异或运算的字符所得的结果本来是字符,怎么还需要(char)强制转换啊?