题解 | #简单密码#

简单密码

https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    //定义map容器存储按键对应数字字符的容器
    private static Map<String, String> map = new HashMap<>();
    //静态初始化、加载map容器
    static {
        map.put("1", "1");
        map.put("abc", "2");
        map.put("def", "3");
        map.put("ghi", "4");
        map.put("jkl", "5");
        map.put("mno", "6");
        map.put("pqrs", "7");
        map.put("tuv", "8");
        map.put("wxyz", "9");
        map.put("0", "0");
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        char[] charArr = str.toCharArray();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < charArr.length; i++) {
            char c = charArr[i];
            if (c >= '0' && c <= '9') {
                //如果是正整数则不需要进行加密
                sb.append(String.valueOf(c));
            } else if (c >= 'A' && c < 'Z') {
                //如果是A~Y的大写字母则需要将其+32位转换成小写再向后移1位
                c = (char)(c + 32 + 1);
                sb.append(String.valueOf(c));
            } else if (c == 'Z') {
                //如果是Z则加密成a
                sb.append("a");
            } else {
                //去除map容器中的key与字符进行校验并加密
                Set<String> keys = map.keySet();
                for (String k : keys) {
                    if (k.contains(String.valueOf(c)))
                        sb.append(map.get(k));
                }
            }
        }
        System.out.println(sb.toString());
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务