【Java】某个公司采用公话传递数据,数据是四位的整数,在传递过程中数据加密

题目:某个公司采用公话传递数据,数据是四位的整数,在传递过程中数据加密,加密规则如下:每位数字都加上5,然后用所得结果除以10的余数代替该数字,再将第一位和第四位数交换,第二位和第三位数交换。程序运行结果如下图所示。

【Java】某个公司采用公话传递数据,数据是四位的整数,在传递过程中数据加密_第1张图片

package chap1_基础语法;

import java.util.Scanner;

/**
 * 某个公司采用公话传递数据,数据是四位的整数,在传递过程中数据加密
 * 加密规则如下:
 * 每位数字都加上5,
 * 然后用所得结果除以10的余数代替该数字,
 * 再将第一位和第四位数交换,
 * 第二位和第三位数交换。
 */

public class Test10 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x, x1, x2, x3, x4;
        System.out.print("友情提示:输入非整数字符即可退出程序\n请输入一个四位整数:");
        while (scanner.hasNextInt()){
            x = scanner.nextInt();
            if(x < 999 || x > 9999) {
                System.out.print("你输入的不是四位整数!!!\n请重新输入:");
            }else {
                x1 = ((x / 1000) + 5) % 10;     //获取千位
                x2 = ((x % 1000) / 100 + 5) % 10;   //获取百位
                x3 = (((x % 1000) % 100) / 10 + 5) % 10; //获取十位
                x4 = ((((x % 1000) % 100) % 10) + 5) % 10; //获取个位
                //方法1:交换数位
                int[] arr = {x1, x2, x3, x4};    //用数组储存这四个数
                for(int i = 0, j = 3; i < j ; i++, j--) { //交换位置
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
                System.out.print("加密后的数字为:");
                for(int i = 0; i < 4; i++) {
                    System.out.print(arr[i]);
                }

                //方法2:交换数位
                int m;//第一位和第四位数交换
                m = x1;
                x1 = x4;
                x4 = m;

                int n;//第二位和第三位数交换
                n = x2;
                x2 = x3;
                x3 = n;
                System.out.println("\n加密后的数字为:"+x1+x2+x3+x4);
                System.out.print("请输入一个四位整数:");
            }
        }
        scanner.close();
    }
}

你可能感兴趣的:(java,数据类型)