简单密码

简单密码

       绕树三匝何枝可依。

 

背景:Java 在线编程机试刷题。

题目描述:

密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。

假设渊子原来一个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个字符,输入直到文件结尾。

输出描述:

将这个整数以字符串的形式逆序输出。

示例1:

输入:

YUANzhi1987

输出:

zvbo9441987

Java代码:

 1 import java.util.Scanner;
 2 
 3 public class Main{
 4     
 5     public static void main(String [] args){
 6        Scanner scan = new Scanner(System.in);
 7        StringBuilder sb = new StringBuilder();
 8        while(scan.hasNextLine()){
 9            String input = scan.nextLine();
10            int length = input.length();
11            for(int i = 0; i < length; i++){
12                char temp = input.charAt(i);
13                // case大写
14                if(Character.isUpperCase(temp)){
15                    // 转小写
16                    temp = Character.toLowerCase(temp);
17                    if(temp == 'z'){
18                        sb.append("a");
19                    }else{
20                        // 相邻间差1
21                        int tempInt = temp + 1;
22                        char tempChar = (char)tempInt;
23                        sb.append(tempChar);
24                    }
25                }else if(Character.isLowerCase(temp)){
26                    // case小写
27                    if(temp == 'a' || temp == 'b' || temp == 'c'){
28                        sb.append("2");
29                    }else if(temp == 'd' || temp == 'e' || temp == 'f'){
30                        sb.append("3");
31                    }else if(temp == 'g' || temp == 'h' || temp == 'i'){
32                        sb.append("4");
33                    }else if(temp == 'j' || temp == 'k' || temp == 'l'){
34                        sb.append("5");
35                    }else if(temp == 'm' || temp == 'n' || temp == 'o'){
36                        sb.append("6");
37                    }else if(temp == 'p' || temp == 'q' || temp == 'r' || temp == 's'){
38                        sb.append("7");
39                    }else if(temp == 't' || temp == 'u' || temp == 'v'){
40                        sb.append("8");
41                    }else{
42                        sb.append("9");
43                    }
44                }else{
45                    // case数字
46                    sb.append(temp);
47                }
48            }
49        }
50        System.out.print(sb.toString());
51        scan.close(); 
52     }
53     
54 }

输出验证:


 

 

 

绕树三匝

何枝可依

 

 

 

posted @ 2020-09-18 14:16  涛姐涛哥  阅读(339)  评论(0编辑  收藏  举报