• 简单密码


    简单密码

           绕树三匝何枝可依。

    背景: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 }

    输出验证:


     

     

    绕树三匝

    何枝可依

     

  • 相关阅读:
    PAT Advanced 1044 Shopping in Mars (25) [⼆分查找]
    PAT Advanced 1029 Median (25) [two pointers]
    PAT Advanced 1010 Radix(25) [⼆分法]
    PAT Basic 1070 结绳(25) [排序,贪⼼]
    PAT Basic 1023 组个最⼩数 (20) [贪⼼算法]
    PAT Basic 1020 ⽉饼 (25) [贪⼼算法]
    PAT Advanced 1070 Mooncake (25) [贪⼼算法]
    PAT Advanced 1067 Sort with Swap(0,*) (25) [贪⼼算法]
    PAT Advanced 1038 Recover the Smallest Number (30) [贪⼼算法]
    PAT Advanced 1037 Magic Coupon (25) [贪⼼算法]
  • 原文地址:https://www.cnblogs.com/taojietaoge/p/13690933.html
Copyright © 2020-2023  润新知