JAVA思维提升案例3

需求:

某系统的数字密码是一个四位数,如1983,为了安全,需要加密后再传输,加密规则是:对密码中的每位数,都加5 ,再对10求余,最后将所有数字顺序反转,得到一串加密后的新数,请设计出满足本需求的加密程序!

java 复制代码
import java.util.Scanner;

public class Test4 {
    //完成四位数字加密
    public static void main(String[] args) {
        Scanner y = new Scanner(System.in);
        System.out.println("请输入四位密码");
        int code= y.nextInt();
        //若输入的是1983的话
        System.out.println("加密后的密码是"+code1(code));;
    }
    public static String code1(int x){
        //1、首先要进行四位数字的拆分成一个一个的数字并且放进数组里
        //创建了一个拆分数字放进数组的方法spli,并且使用
        //直接alt+回车会直接出来此方法在底部
        int arr[] = split(x);//设置一个新的数组接受返回来的数组
        //{1,9,8,3}
        //2、利用for循环遍历每位数字进行加密
        for (int i = 0 ;i< arr.length;i++){
            arr[i] = (arr[i]+5)%10;
        }//输出后arr的值为[6,4,3,8]
        //3、数组反转,需要定义一个新的方法进行数组反转,并且使用
        fanzhuan(arr);//调用完后arr= [8,3,4,6]
        //4、最后定义一个空的字符串,将反转完的数组挨个拼接打印出来
        String data = " ";
        for (int j =0;j<arr.length;j++){
            data += arr[j];//字符串相加的话是相互拼接的
        }
        return data;//返回结果
    }
    //进行数字拆分加入数组的方法
   public static int[] split(int x) {
        //此题目限制于四位数,多位可以以此类推
        int[] arr = new int[4];
       arr[0] =x/1000;
        arr[1] =(x/100)%10;
        arr[2] =(x/10)%10;
        arr[3] =x%10;
        return arr;
    }
    //此处是对数组进行反转的
    public static void fanzhuan(int[] arr) {//引用会改变值

        //定义一个从头开始遍历的数组,在定义一个从后往前遍历的数组,两个互相交换位置
        for (int i =0,j =arr.length-1;i<j;i++,j--){
            //定义一个临时变量接受其中一个的值
            int temp = arr[j];
            arr[j] = arr[i];
            arr[i] = temp;
        }

    }
}
相关推荐
LucaJu4 分钟前
一次 OOM 线上排查实录
java·jvm·oom·内存溢出
SimonKing14 分钟前
Firefox 太卡?换了这浏览器,内存占用直接降了 70%
java·后端·程序员
咖啡八杯16 分钟前
GoF设计模式——建造者模式
java·后端
l软件定制开发工作室17 分钟前
Spring开发系列教程(41)——集成Open API
java·后端·spring
折哥的程序人生 · 物流技术专研24 分钟前
《Java 100 天进阶之路》第14篇:Java final关键字详解
java·开发语言·后端·面试
IT当时语_青山师__JAVA技术栈24 分钟前
数组与链表深度解析:从内存布局到工业级实践
java·算法·面试
java1234_小锋25 分钟前
Spring AI 2.0 开发Java Agent智能体 - 工具调用(Function Calling / Tools)
java·人工智能·spring
Cosmoshhhyyy26 分钟前
《Effective Java》解读第 52 条:慎用重载
java·开发语言·windows
大大杰哥27 分钟前
温故知新:Java 线程创建方式的演进与总结
java·开发语言·jvm
凯瑟琳.奥古斯特29 分钟前
死锁四大必要条件解析
java·开发语言·后端·职场和发展