代碼如下:
import java.util.Scanner;
public class VariableExchange {
public static void main(String[] args){
System.out.println("請輸入變量A的值");
Scanner scanner=new Scanner(System.in);
long A=scanner.nextLong();
System.out.println("請輸入變量B的值");
Scanner scannerB=new Scanner(System.in);
long B=scannerB.nextLong();
System.out.println("A="+A+"\t"+"B="+B);
System.out.println("執(zhí)行變量互換...");
A=A^B;
B=B^A;
A=A^B;
System.out.println("A="+A+"\t"+"B="+B);
}
}
其實現(xiàn)是巧用了異或運算。
其原理:
復制代碼代碼如下:
a = a ^ b;
b = b ^ a;
a = a ^ b;
即
復制代碼代碼如下:
a1=a^b
b=a1^b=(a^b)^b=a
a=a1^b =a1^(a1^b)=a1^a1^b=b
同一變量與另一變量和其異或值異或等于自身。
該原理同樣可運用于加密。將其值與key進行異或得到加密后的串,解密操作也只需與key再異或一次。
補充:
Scanner類:
一個可以使用正則表達式來解析基本類型和字符串的簡單文本掃描器。
例1:
復制代碼代碼如下:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
例2:
復制代碼代碼如下:
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}