基于Java解決華為機(jī)試之字符串加解密?
1.簡(jiǎn)述
描述:
- 1、對(duì)輸入的字符串進(jìn)行加解密,并輸出。
- 2、加密方法為:
當(dāng)內(nèi)容是英文字母時(shí)則用該英文字母的后一個(gè)字母替換,同時(shí)字母變換大小寫(xiě),如字母a時(shí)則替換為B;字母Z時(shí)則替換為a;
當(dāng)內(nèi)容是數(shù)字時(shí)則把該數(shù)字加1,如0替換1,1替換2,9替換0;
其他字符不做變化。
- 3、解密方法為加密的逆過(guò)程。
本題含有多組樣例輸入。
數(shù)據(jù)范圍:輸入的兩個(gè)字符串長(zhǎng)度滿足1 \le n \le 1000 \1≤n≤1000
,保證輸入的字符串都是大小寫(xiě)字母或者數(shù)字
輸入描述:
輸入說(shuō)明
- 輸入一串要加密的密碼
- 輸入一串加過(guò)密的密碼
輸出描述:
輸出說(shuō)明
- 輸出加密后的字符
- 輸出解密后的字符
2.示例1
輸入:
abcdefg BCDEFGH
輸出:
BCDEFGH
abcdefg
2.代碼實(shí)現(xiàn)
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())); ? ? ? ? } ? ? } ? ? //加密函數(shù) ? ? private static String encode(String code){ ? ? ? ? char[] t = code.toCharArray(); ? ?//將String對(duì)象轉(zhuǎn)換為字符數(shù)組 ? ? ? ? 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); ? ? } ? ? //解密函數(shù) ? ? 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); ? ? } }
到此這篇關(guān)于基于Java解決華為機(jī)試之字符串加解密 的文章就介紹到這了,更多相關(guān)Java字符串加解密 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Java解決華為機(jī)試實(shí)現(xiàn)密碼截取?
- ?基于Java解決華為機(jī)試之字符串合并處理實(shí)操
- java實(shí)現(xiàn)IP地址轉(zhuǎn)換
- Java實(shí)現(xiàn)IP地址到二進(jìn)制的轉(zhuǎn)換
- Java實(shí)現(xiàn)ip地址和int數(shù)字的相互轉(zhuǎn)換
- Java編程IP地址和數(shù)字相互轉(zhuǎn)換代碼示例
- 使用Java代碼將IP地址轉(zhuǎn)換為int類型的方法
- java實(shí)現(xiàn)ip地址與十進(jìn)制數(shù)相互轉(zhuǎn)換
- 基于Java解決華為機(jī)試實(shí)現(xiàn)整數(shù)與IP地址間的轉(zhuǎn)換?
相關(guān)文章
如何使用lamda表達(dá)式對(duì)list進(jìn)行求和
這篇文章主要介紹了如何使用lamda表達(dá)式對(duì)list進(jìn)行求和問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Spring Boot拓展XML格式的請(qǐng)求和響應(yīng)操作過(guò)程
在我們開(kāi)發(fā)過(guò)程中,我們經(jīng)常使用的參數(shù)絕大多少事HTML和JSON格式的請(qǐng)求和響應(yīng)處理,但是我們?cè)趯?shí)際開(kāi)發(fā)過(guò)程中,我們可能經(jīng)歷一些,比如對(duì)于XML格式的請(qǐng)求,本文給大家介紹Spring Boot拓展XML格式的請(qǐng)求和響應(yīng),感興趣的朋友一起看看吧2023-10-10eclipse怎么引入spring boot項(xiàng)目插件的方法
這篇文章主要介紹了eclipse怎么引入spring boot項(xiàng)目插件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Java實(shí)現(xiàn)猜數(shù)字小游戲(有次數(shù)限制)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)猜數(shù)字小游戲,有次數(shù)限制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05java子類調(diào)用父類的方法中包含子類重寫(xiě)的實(shí)例方法
在本篇文章里小編給大家整理了關(guān)于java子類調(diào)用父類的方法中包含子類重寫(xiě)的實(shí)例方法以及相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。2019-09-09Java實(shí)現(xiàn)Linux下雙守護(hù)進(jìn)程
這篇文章主要介紹了Java實(shí)現(xiàn)Linux下雙守護(hù)進(jìn)程的思路、原理以及具體實(shí)現(xiàn)方式,非常的詳細(xì),希望對(duì)大家有所幫助2014-10-10