不使用第三个变量的情况下,实现两个变量间的互换。

代码如下:

package test;

import java.util.Scanner;
/*
 *@author xpengfei
 *@version 
 *创建时间:May 10, 2017  5:21:06 PM
 */

/*
 *类信息:不借助第三个变量,实现两个变量之间的互换
 */
public class ch_17 {
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入变量A的值:");
        long A=scan.nextLong();
        System.out.println("请输入B的值:");
        long B=scan.nextLong();
        System.out.println("A="+A+"\tB="+B);
        System.out.println("-----:实现变量互换:-----");
        A=A^B;
        B=B^A;
        A=A^B;
        System.out.println("A="+A+"\tB="+B);
    }
}

主要是通过异或实现,类比于通过异或符号实现简单的加密功能
第一行的A=A^B 即是将A^B后的一串编码赋值给A以便下面实现A与B得互换;
B=B^A 通过此行代码实现将A得原有值赋给B
A=A^B 将B得原有值赋给A
至此A与B之间已实现互换。

Scanner scan=new Scanner(System.in);
        System.out.println("请输入一个英文字符串或解密字符串:");
        String passwd=scan.nextLine();
        char[]array=passwd.toCharArray();
        for(int i=0;i<array.length;i++){
            array[i]=(char)(array[i]^20000);
        }
        System.out.println("加密或解密后的结果如下:");
        System.err.println(new String(array));

代码中的最后一行System.err.println(new String(array));是通过err函数手动输出错误信息。
将结果以错误信息形式输出,更加醒目。

 

posted @ 2017-05-12 10:14  竹芒  阅读(791)  评论(0编辑  收藏  举报