簡單密碼破解

題目描述

密碼是咱們生活中很是重要的東東,咱們的那麼一點不能說的祕密就全靠它了。哇哈哈. 接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。   假設淵子原來一個BBS上的密碼爲zvbo9441987,爲了方便記憶,他經過一種算法把這個密碼變換成YUANzhi1987,這個密碼是他的名字和 出生年份,怎麼忘都忘不了,並且能夠明目張膽地放在顯眼的地方而不被別人知道真正的密碼。   他是這麼變換的,你們都知道手機上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno-- 6, pqrs--7, tuv--8 wxyz--9, 0--0,就這麼簡單,淵子把密碼中出現的小寫字母都變成對應的數字,數字和其餘的符號都不作 變換,   聲明:密碼中沒有空格,而密碼中出現的大寫字母則變成小寫以後日後移一位,如:X,先變成小寫,再日後移一位,不就是y了嘛,簡單吧。記住,z日後移是a 哦。
輸入描述:
輸入包括多個測試數據。輸入是一個明文,密碼長度不超過100個字符,輸入直到文件結尾


輸出描述:
輸出淵子真正的密文

輸入例子:
YUANzhi1987
 
  
輸出例子:
zvbo9441987
 
 
 
import java.math.BigInteger;
import java.util.*;
public class Main {
     public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         String daxie= "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
         String code1= "bcdefghijklmnopqrstuvwxyza" ;                                      //對應位置排序好
         while (sc.hasNext()) {
             String ss=sc.next();
             StringBuffer sb= new StringBuffer();
             for ( int i= 0 ;i<ss.length();i++){
                 if (ss.charAt(i)>= 'A' &&ss.charAt(i)<= 'Z' ){
                     sb=sb.append(code1.charAt(daxie.indexOf(ss.charAt(i))));          //取得輸入字符串在大寫的位置
                 }
                 else {
                     if (ss.charAt(i)>= 'a' &&ss.charAt(i)<= 'z' ) {
                         switch (ss.charAt(i)) {
                             case 'a' :
                             case 'b' :
                             case 'c' :
                                 sb=sb.append( '2' );
                                 break ;
                             case 'd' :
                             case 'e' :
                             case 'f' :
                                 sb=sb.append( '3' );
                                 break ;
                             case 'g' :
                             case 'h' :
                             case 'i' :
                                 sb=sb.append( '4' );
                                 break ;
                             case 'j' :
                             case 'k' :
                             case 'l' :
                                 sb=sb.append( '5' );
                                 break ;
                             case 'm' :
                             case 'n' :
                             case 'o' :
                                 sb=sb.append( '6' );
                                 break ;
                             case 'p' :
                             case 'q' :
                             case 'r' :
                             case 's' :
                                 sb=sb.append( '7' );
                                 break ;
                             case 't' :
                             case 'u' :
                             case 'v' :
                                 sb=sb.append( '8' );
                                 break ;
                             default :
                                 sb=sb.append( '9' );
                         }
                     }
                     else sb=sb.append(ss.charAt(i));
                 }
             }
             System.out.println(sb.toString());
         }
     }
}
相關文章
相關標籤/搜索