zoukankan      html  css  js  c++  java
  • 数字使用相应的加密策略传递一个字符串后Java实现代码

    公司采用公用电话传递数据,数据小于8整数位,为了确保安全,
        在转移的过程中需要加密,加密规则如下面的:
            第一个数据下降,附图然后各加5,和除以10的余数取代该数字,
            最后将第一位和最后一位数字交换。

    请随意给定一个小于8位的整数,
            然后,把加密后的结果在控制台打印出来。
            
        题目要求:
            A:数据是小于8位的整数
                定义一个int类型的数据
                int number = 123456;
            B:加密规则
                a:首先将数据倒序
                    结果 654321
                b:然后将每位数字都加上5。再用和除以10的余数取代该数字
                    结果 109876
                c:最后将第一位和最后一位数字交换
                    结果 609871
            C:把加密后的结果输出在控制台
            
            通过简单的分析,我们知道假设我们有办法把这个数据变成数组就好了。
            不是直接写成这个样子的:
                int[] arr = {1,2,3,4,5,6};
                
            怎样把数据转成数组呢?


                A:定义一个数据
                    int number = 123456;
                B:定义一个数组,这个时候问题就来了,数组的长度是多少呢?
                    int[] arr = new int[8]; //不可能超过8
                    在赋值的时候。我用一个变量记录索引的变化。
                    定义一个索引值是0
                    int index = 0;
                C:获取每个数据
                    int ge = number%10
                    int shi = number/10%10
                    int bai = number/10/10%10
                    
                    arr[index] = ge;
                    index++;
                    arr[index] = shi;
                    index++;

                    arr[index] = bai;

    源码:

    import java.util.Scanner;
    
    class JiaMiMain {
    	public static void main(String[] args) {
    		// 创建键盘录入对象
    		Scanner sc = new Scanner(System.in);
    
    		// 请输入一个数据
    		System.out.println("请输入一个数据(小于8位):");
    		int number = sc.nextInt();
    
    		// 写功能实现把number进行加密
    		// 调用
    		String result = jiaMi(number);
    		System.out.println("加密后的结果是:" + result);
    	}
    
    	/*
    	 * 需求:写一个功能,把数据number实现加密。

    两个明白: 返回值类型:String 做一个字符串的拼接。

    參数列表:int number */ public static String jiaMi(int number) { // 定义数组 int[] arr = new int[8]; // 定义索引 int index = 0; // 把number中的数据想办法放到数组中 while (number > 0) { arr[index] = number % 10; index++; number /= 10; } // 把每一个数据加5,然后对10取得余数 for (int x = 0; x < index; x++) { arr[x] += 5; arr[x] %= 10; } // 把第一位和最后一位交换 int temp = arr[0]; arr[0] = arr[index - 1]; arr[index - 1] = temp; // 把数组的元素拼接成一个字符串返回 // 定义一个空内容字符串 String s = ""; for (int x = 0; x < index; x++) { s += arr[x]; } return s; } }



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    PHP 构造方法 __construct()(转)
    PHP笔记
    php的print_r第二个参数是true有啥用啊
    如何给类或方法规范地注释
    详解spl_autoload_register()  函数(转)
    PHP中文网上的分页代码
    echo 0000
    [csu/coj 1619] 递归
    [csu/coj 1083]贪心
    [csu/coj 1078]多个序列的最长公共子序列
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4802832.html
Copyright © 2011-2022 走看看