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; } }
以上就是小编为大家带来的Java简单实现对一串数字采用相应的加密策略后传输的全部内容了,希望对大家有所帮助,多多支持我们~
相关推荐
-
JAVA 获取系统当前时间实例代码
本文章向大家讲解java中时间的获取和格式化, 一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowString { public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
-
javascript的几种写法总结
<title>几个JavaScript</title> <script language="javascript"> //变量 var greeting;//变量名 greeting = "Welcome to the JS!";//为变量赋值 </script> </head> <body> <script language="javascript"> docu
-
JavaScript 链式结构序列化详解
一.概述 在JavaScript中,链式模式代码,太多太多,如下: if_else: if(...){ //TODO }else if(...){ //TODO }else{ //TODO } switch: switch(name){ case ...:{ //TODO break; } case ...:{ //TODO break; } default:{ //TODO } } 疑问:诸如上述这些链式代码,倘若,我们想将其扁平化链式处理呢?如下: //fn1,f2,f3为处理函数 _if(
-
JavaScript 对象详细整理总结
Javascript 对象总结: JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自有的属性外,还可以从一个称为原型的对象继承属性.对象的方法通常是继承的属性.这种"原型式集成"是JavaScript的的核心特征. 1.创建对象 第一种:对象直接量表示法创建对象. 这是最简单的对象创建方式,对象直接量由若干key:value键值对属性组成
-
在jmeter的beanshell中用java获取系统当前时间的简单实例
复制代码 代码如下: import java.util.*; int y,m,d,h,mi,s; Calendar cal=Calendar.getInstance(); y=cal.get(Calendar.YEAR); m=cal.get(Calendar.MONTH); d=cal.get(Calendar.DATE); h=cal.get(Calendar.HOUR_OF_DAY); mi=cal.get(Calendar.MINUTE);
-
轻松掌握Java迭代器模式
定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示. 特点: 1.它支持以不同的方式遍历一个聚合对象. 2.迭代器简化了聚合类. 3.在同一个聚合上可以有多个遍历. 4.在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码. 企业级开发和常用框架中的应用:java集合都实现了迭代器 具体实例: public class Demo { public static void main(String[] args) { ActualContainer container =
-
java实现多线程的两种方式继承Thread类和实现Runnable接口的方法
实现方式和继承方式有什么区别呢? *区别: *继承Thread:线程代码存放在Thread子类run方法中 *实现Runnable:线程代码存放在接口的子类的run方法中 *实现方式的好处:避免了单继承的局限性 *在定义线程时,建议使用实现方式,当然如果一个类没有继承父类,那么也可以通过继承Thread类来实现多线程 *注意:Runnable接口没有抛出异常,那么实现它的类只能是try-catch不能throws *Java对多线程的安全问题提供了专业的解决方式就是同步代码块synchroniz
-
java 数据结构二叉树的实现代码
1. 二叉树接口 public interface BinaryTreeInterface<T> { public T getRootData(); public int getHeight(); public int getNumberOfRoot(); public void clear(); public void setTree(T rootData); // 用rootData设置树 public void setTree(T rootData,BinaryTreeInterface
-
Java 锁的知识总结及实例代码
java中有哪些锁 这个问题在我看了一遍<java并发编程>后尽然无法回答,说明自己对于锁的概念了解的不够.于是再次翻看了一下书里的内容,突然有点打开脑门的感觉.看来确实是要学习的最好方式是要带着问题去学,并且解决问题. 在java中锁主要两类:内部锁synchronized和显示锁java.util.concurrent.locks.Lock.但细细想这貌似总结的也不太对.应该是由java内置的锁和concurrent实现的一系列锁. 为什么这说,因为在java中一切都是对象,而java对每
-
Java简单实现对一串数字采用相应的加密策略后传输
某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全, 在传递过程中需要加密,加密规则如下: 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换. 请任意给定一个小于8位的整数, 然后,把加密后的结果在控制台打印出来. 题目要求: A:数据是小于8位的整数 定义一个int类型的数据 int number = 123456; B:加密规则 a:首先将数据倒序 结果 654321 b:然后将每位数字都加上5,再用和除以10的余数代
-
Java简单统计字符串中汉字,英文字母及数字数量的方法
本文实例讲述了Java简单统计字符串中汉字,英文字母及数字数量的方法.分享给大家供大家参考,具体如下: package org.zhy.demo.algorithm; /** * 有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数 * * @author Administrator * */ public class Str { public static void main(String[] args) { String str = "adasfAAADFD阿萨德
-
Java简单验证身份证功能示例
本文实例讲述了Java简单验证身份证功能.分享给大家供大家参考,具体如下: package org.cxy.csdn.example; import java.util.Calendar; import java.util.HashMap; import java.util.Map; import javax.xml.bind.Validator; /** * 身份证验证的工具(支持5位或18位省份证)<br/> * 身份证号码结构: * <ol> * <li>17位数
-
Java实现的Excel列号数字与字母互相转换功能
本文实例讲述了Java实现的Excel列号数字与字母互相转换功能.分享给大家供大家参考,具体如下: 我们在实现对Excel的导入导出的时候,往往需要准确的给用户提示信息,提示到具体的Excel的单元格,这里就需要对Excel的列号进行数字和字母的转换,今天正好用到这个需求,所以就写了一个demo,总结一下: Java实现: package test; /** * Deal with Excel column indexToStr and strToIndex * @author Stephen.
-
Java实现ip地址和int数字的相互转换
Java版本的 ip地址和int数字的相互转换 对于ipv4的地址来说,如果用字符串的形式存储的话,其占用字节就比较大,比如对于IPv4地址0.0.0.0的字符串,就需要7个字节,IPv4为255.255.255.255 的字符串,需要15个字节,也就是说存储一个ip需要占用7~15个字节. 那么有没有更节省空间的存储方式呢?答案是有. 方案1: 直接把字符串中的'.'去掉,不就变成一个数字了嘛,比如 "255.255.255.255" 变成 255255255255,然而我们知道in
-
Java简单实现定时器
本文实例为大家分享了Java简单实现定时器的具体代码,供大家参考,具体内容如下 一.定时器 定时器相当于一个任务管理器.有些任务可能现在执行, 有些任务可能过1个小时,甚至很久才会执行.定时器就是对这些任务进行管理监视, 如果一个任务执行时间到了,定时器就会将这个任务执行. 保证所有的任务都会在合适的时间执行. 二.定时器的实现 对于定时器的实现,我们可以划分为3个部分. 1. 使用一个Task类描述每一个任务(里面包含任务的执行方法, 定时时间). 2. 使用优先级队列管理这些任务类. 2.1
-
Java简单实现线程池
本文实例为大家分享了Java简单实现线程池的具体代码,供大家参考,具体内容如下 一.线程池 线程池是一种缓冲提高效率的技术. 相当于一个池子,里面存放大量已经创建好的线程,当有一个任务需要处理时, 可以直接从池子里面取一个线程去执行它. 包括内存池,很多缓冲的技术都是采用这种技术. 其实理解起来很简答! 为什么需要线程池,这种池的技术? 1.1 减少开辟资源和销毁资源带来的损耗. 开辟线程,申请内存(具体的可以看C语言中malloc底层实现原理),销毁线程.释放内存资源等一些操作都是有时间消耗的
-
Java简单使用EasyExcel操作读写excel的步骤与要点
目录 前言 引入EasyExcel依赖 easyExcel写 easyExcel读 总结下easyExcel的步骤和要点 结语 前言 EasyExcel是一个基于Java的.快速.简洁.解决大文件内存溢出的Excel处理工具. 他能让你在不用考虑性能.内存的等因素的情况下,快速完成Excel的读.写等功能. EasyExcel基于POI进行封装优化,降低内存使用,再大的excel也不会出现内存溢出,让使用更加简单方便. 官网: https://easyexcel.opensource.aliba
-
java简单读取properties配置文件的方法示例
本文实例讲述了java简单读取properties配置文件的方法.分享给大家供大家参考,具体如下: 读取配置文件,小结如下 import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; public class loadConf { private Properties prop = new Properties(); private void loadconf() t
-
Java正则表达式过滤出字母、数字和中文
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2) 过滤出 数字 的正则表达式 [^(0-9)] (3) 过滤出 中文 的正则表达式 [^(\\u4e00-\\u9fa5)] (4) 过滤出字母.数字和中文的正则表达式 [^(a-zA-Z0-9\\u4e00-\\u9fa5)] 2.实例源码 ** * @Title:FilterStr.java * @Package:com.you.dao * @Description:Java中过滤数
随机推荐
- JS实现的base64加密、md5加密及sha1加密详解
- Flex中给按钮添加链接点击链接打开网页的方法
- Redis的使用模式之计数器模式实例
- ThinkPHP自定义Redis处理SESSION的实现方法
- 基于asp+ajax和数据库驱动的二级联动菜单
- Filezilla server配置FTP服务器中的各种问题与解决方法
- iOS开发之银行卡号识别
- 使用JS中的Replace()方法遇到的问题小结
- JavaScript中的迭代器和生成器详解
- javascript实现消灭星星小游戏简单版
- javascript 操作cookies及正确使用cookies的属性
- 微信小程序教程系列之页面跳转和参数传递(6)
- $.ajax()常用方法详解(推荐)
- ajax 开发守则 10条说明
- javascript教程:关于if简写语句优化的方法
- java 根据经纬度获取地址实现代码
- c++ mk文件出错Jni调用产生java.lang.UnsatisfiedLinkError错误解决方法
- java 使用DecimalFormat进行数字的格式化实例详解
- Android UI设计与开发之实现应用程序只启动一次引导界面
- PHP详细彻底学习Smarty