java数组加密问题

来源:互联网 发布:恒瑞 知乎 工资 编辑:程序博客网 时间:2024/05/18 06:19
某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
 在传递过程中需要加密,加密规则如下:                                        123456
     首先将数据倒序,                                                                         654321
     然后将每位数字加5,再用 对10取余 代替该数字,                     109876
     最后将第一位和最后一位数字交换。                                            609871
     请任意给定一个小于8位的整数,然后将加密后的结果打印出来。
     
     分析:先将数据转变成数组
     

     知识点:变量;数据类型;运算符;键盘录入;方法;语句;数组


package cn.base;import java.util.Scanner;import org.omg.CORBA.PUBLIC_MEMBER;public class Encryption {public static void main(String args[]){/*把数据的每一位数字获取后存储到数组int index=0;arr[index]=num%10;index++;arr[index]=num/10%10;index++;arr[index]=num/10/10%10;index++;……*/System.out.println("输入一个数据(小于8位):");Scanner sc = new Scanner(System.in);int n = sc.nextInt();String result = encryption(n);System.out.print("加密后的结果是:"+result);}/* 需求:写一个功能,把数据n加密实现 两个明确: 返回值类型:String 做一个字符串的拼接 参数列表:int n */public static String encryption(int n){//定义索引int index=0;//定义数组int[] arr = new int[8];//把数据的每一位数字获取后存储到数组while(n>0){arr[index]=n%10;index++;n/=10;}//每位数字加5,对10取余for(int i=0;i<index;i++){arr[i]+=5;arr[i]%=10;}//第一位最后一位数字交换int temp=arr[0];arr[0]=arr[index-1];arr[index-1]=temp;//定义一个内容为空的字符串String s = " ";//将数组元素拼接成一个字符串返回for(int i=0; i<index; i++)s += arr[i];return s;}}