基于Java解决华为机试之字符串加解密
目录
- 1.简述
- 2.示例1
- 2.代码实现
1.简述 描述:
- 1、对输入的字符串进行加解密,并输出。
- 2、加密方法为:
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
- 3、解密方法为加密的逆过程。
数据范围:输入的两个字符串长度满足
1 \le n \le 1000 \1≤n≤1000
,保证输入的字符串都是大小写字母或者数字输入描述:
输入说明
- 输入一串要加密的密码
- 输入一串加过密的密码
输出说明
- 输出加密后的字符
- 输出解密后的字符
2.示例1 【基于Java解决华为机试之字符串加解密】输入:
abcdefgBCDEFGH
复制输出:
BCDEFGH
abcdefg
2.代码实现
import java.util.Scanner; public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in); while(in.hasNext()){System.out.println(encode(in.nextLine())); System.out.println(decode(in.nextLine())); }}//加密函数private static String encode(String code){char[] t = code.toCharArray(); //将String对象转换为字符数组for(int i=0; i < t.length; i++){if(t[i]>='a' && t[i]<'z')t[i] = (char)(t[i] - 'a' + 'A' + 1); else if(t[i] == 'z')t[i] = 'A'; else if(t[i]>='A' && t[i]<'Z')t[i] = (char)(t[i] - 'A' + 'a' + 1); else if(t[i] == 'Z')t[i] = 'a'; else if(t[i]>='0' && t[i]<'9')t[i] = (char)(t[i]+1); else if(t[i] == '9')t[i] = '0'; }return String.valueOf(t); }//解密函数private static String decode(String password){char[] t = password.toCharArray(); for(int i=0; i < t.length; i++){if(t[i]>'a' && t[i]<='z')t[i] = (char)(t[i] - 'a' + 'A' - 1); else if(t[i] == 'a')t[i] = 'Z'; else if(t[i]>'A' && t[i]<='Z')t[i] = (char)(t[i] - 'A' + 'a' - 1); else if(t[i] == 'A')t[i] = 'z'; else if(t[i]>'0' && t[i]<='9')t[i] = (char)(t[i]-1); else if(t[i] == '0')t[i] = '9'; }return String.valueOf(t); }}
到此这篇关于基于Java解决华为机试之字符串加解密 的文章就介绍到这了,更多相关Java字符串加解密 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 基于Mediapipe+Opencv实现手势检测功能
- webstorm没有typescript错误提示的解决方案
- java|程序员2009精华本(china-pub首发)--百期后的新起点
- java|六面天猫,已拿 offer,我的面经复盘总结,大厂真的有那么难进吗()
- 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...
- 初识Java——课堂笔记
- java|自学java(2)
- 刷题|leetcode226翻转二叉树(JAVA版)
- java|springboot缓存+springboot整合redis缓存
- java|SpringBoot整合Redis以及Redis缓存