java中使用數(shù)組進(jìn)行模擬加密的方法
現(xiàn)假設(shè)某個(gè)公司采用公用電話來(lái)傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過(guò)程中是加密的。
加密規(guī)則是每位數(shù)字都加上5,然后再用除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。
編寫一個(gè)程序,用于接收一個(gè)四位的整數(shù),并且打印輸出加密后的數(shù)。
這道題原本沒(méi)有要求必須使用數(shù)組,所以我們先是使用一種翻譯題目的方法完成這道題的,主要代碼如下:
public static void main(String[] args) { System.out.println("請(qǐng)輸入一個(gè)4位數(shù)字:"); Scanner sc=new Scanner(System.in); int n=0; int i=0; while(true){ n=sc.nextInt(); if(n<999||n>10000){ System.out.println("你輸入的數(shù)字不合法!請(qǐng)重新輸入"); }else{ break; } } int gewei=n%10; n/=10; int shiwei=n%10; n/=10; int baiwei=n%10; n/=10; gewei+=5; shiwei+=5; baiwei+=5; n+=5; int a=gewei%10; int b=shiwei%10; int c=baiwei%10; int d=n%10; int out=d*1000+c*100+b*10+a; System.out.println("加密后的數(shù)字是:"+out); }
完成后我們?cè)賴L試一下用數(shù)組的方式去解決這道題,經(jīng)過(guò)多次嘗試以后實(shí)現(xiàn)該功能,其代碼如下:
public static void main(String[] args) { System.out.println("請(qǐng)輸入一個(gè)4位數(shù)字:"); Scanner sc=new Scanner(System.in); int n=0; int a=0; while(true){ n=sc.nextInt(); if(n<999||n>10000){ System.out.println("你輸入的數(shù)字不合法!請(qǐng)重新輸入"); }else{break;} } int[] m=new int[4]; for(int i=0;i<m.length;i++){ m[i]=n%10; n/=10; m[i]+=5; m[i]%=10; System.out.print(m[i]); } }
采用數(shù)組來(lái)完成這一功能核心的代碼只有一個(gè)for循環(huán),而且題目中的4位數(shù)這個(gè)條件可以輕易的改為5位6位或更多,而不需要過(guò)多的更改代碼。
相信本文所述示例對(duì)打擊學(xué)習(xí)Java的數(shù)組會(huì)帶來(lái)一定的借鑒價(jià)值。
- 詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法
- Java實(shí)現(xiàn)SSH模式加密
- java自帶的MessageDigest實(shí)現(xiàn)文本的md5加密算法
- Java實(shí)現(xiàn)DES加密與解密,md5加密以及Java實(shí)現(xiàn)MD5加密解密類
- java實(shí)現(xiàn)MD5加密方法匯總
- Java Web開(kāi)發(fā)之MD5加密用法分析
- 實(shí)例講解java的純數(shù)字加密解密
- Java實(shí)現(xiàn)MD5加密的方法
- JAVA中AES加密方法實(shí)例分析
- Java生成非對(duì)稱型加密公鑰和私鑰的方法
- Java中使用異或運(yùn)算符實(shí)現(xiàn)加密字符串
- 簡(jiǎn)潔實(shí)用的Java Base64編碼加密異常處理類代碼
- 詳解DES加密算法及在Java程序中的使用示例
相關(guān)文章
spring Boot 應(yīng)用通過(guò)Docker 來(lái)實(shí)現(xiàn)構(gòu)建、運(yùn)行、發(fā)布流程
這篇文章主要介紹了spring Boot 應(yīng)用通過(guò)Docker 來(lái)實(shí)現(xiàn)構(gòu)建、運(yùn)行、發(fā)布流程,圖文詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11因Spring AOP導(dǎo)致@Autowired依賴注入失敗的解決方法
這篇文章主要給大家介紹了因Spring AOP導(dǎo)致@Autowired依賴注入失敗的解決方法,文中通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07jenkins 構(gòu)建項(xiàng)目之 pipeline基礎(chǔ)教程
​pipeline ,簡(jiǎn)單來(lái)說(shuō),就是一套運(yùn)行在 jenkins 上的工作流框架。這篇文章主要介紹了jenkins 構(gòu)建項(xiàng)目之 pipeline基礎(chǔ)教程,需要的朋友可以參考下2020-07-07spring+maven實(shí)現(xiàn)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了spring+maven實(shí)現(xiàn)發(fā)送郵件功能,利用spring提供的郵件工具來(lái)發(fā)送郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Java設(shè)計(jì)模式七大原則之合成復(fù)用原則詳解
合成復(fù)用原則(Composite Reuse Principle),即盡量使用組合/聚合的方式,而不是使用繼承。本文將為大家具體介紹一下Java設(shè)計(jì)模式七大原則之一的合成復(fù)用原則,需要的可以參考一下2022-02-02Java中的Set、List、Map的用法與區(qū)別介紹
這篇文章主要介紹了Java中的Set、List、Map的用法與區(qū)別,需要的朋友可以參考下2016-06-06使用spring?data的page和pageable如何實(shí)現(xiàn)分頁(yè)查詢
這篇文章主要介紹了使用spring?data的page和pageable如何實(shí)現(xiàn)分頁(yè)查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Java Socket實(shí)現(xiàn)猜數(shù)字小游戲
這篇文章主要為大家詳細(xì)介紹了Java Socket實(shí)現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09