package com.itheima.demo;import java.util.Scanner;public class Test6 { public static void main(String[] args) { // 需求:数据加密 // 1.定义一个数据存入需要加密的数据 System.out.println("请您输入要加密的个数:"); // 自动定义动态数组的个数 Scanner sc = new Scanner(System.in); int lenght = sc.nextInt(); int[] arr = new int[lenght]; // 这等于是让用于自己输入需要加密的个数 // 2.录入需要加密的数字 for (int i = 0; i < arr.length; i++) { System.out.println("请输入要加密的数字:");// arr[i] = sc.nextInt(); // 一般用让用户输入东西,最好用一个变量接收:sc.nextInt得到的是数值类型,用变量接收 int number = sc.nextInt(); arr[i] = number; // 将每次录入的数字都赋值给数组 } // 3. 打印数组 System.out.println("未加密前:"); printArray(arr); // 4.核心逻辑:(对数组中加密的数据进行加密) (采用每个元素先+5, 然后对10求余) 假设原来的数组是arr = [1,9,8,3] for (int i = 0; i < arr.length; i++) { arr[i] = (arr[i] + 5) % 10; // 将每个数组进行特定的加密操作然后赋值给数组元素,刷新 } // 5.核心逻辑:对数组中加密的数据进行反转,才是最终加密的结果 arr = [6,4,3,8]; // i j for (int i = 0, j = arr.length - 1; i < j; i++ , j--) { // 这是将数组的元素反转,i初始索引为0,j为最后一个元素(arr.length-1) // i的索引不断增加,j不断想减,当i == j时就不反转 // 判断条件则是要i < j // 将遍历的元素进行调换 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } System.out.println("加密后: "); // 再次调用方法是把最新的加密数字打印出来 printArray(arr); } // 定义一个方法,将录入的数字打印出来 public static void printArray(int[] arr){ System.out.print("["); for (int i = 0; i < arr.length; i++) { System.out.print(i == arr.length -1 ? arr[i]: arr[i] + ","); // 这里是用了三元运算符,如果索引i是最后一个元素(arr.length)就输出arr[i],如果不是,就每个arr[i]后面加“,” } System.out.println("]"); }}