简单密码破解

题目描述

密码是咱们生活中很是重要的东东,咱们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。   假设渊子原来一个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());
         }
     }
}