题解 | #简单密码#

简单密码

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

import java.util.Scanner; 

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
          HashMap<Character, Integer> map = new HashMap<>();
        // 插入键值对
        map.put('a', 2);
        map.put('b', 2);
        map.put('c', 2);
        map.put('d', 3);
        map.put('e', 3);
        map.put('f', 3);
        map.put('g', 4);
        map.put('h', 4);
        map.put('i', 4);
        map.put('j', 5);
        map.put('k', 5);
        map.put('l', 5);
        map.put('m', 6);
        map.put('n', 6);
        map.put('o', 6);
        map.put('p', 7);
        map.put('q', 7);
        map.put('r', 7);
        map.put('s', 7);
        map.put('t', 8);
        map.put('u', 8);
        map.put('v', 8);
        map.put('w', 9);
        map.put('x', 9);
        map.put('y', 9);
        map.put('z', 9);
        String input = in.nextLine();
        for(int i=0;i<input.length();i++){
            char ch = input.charAt(i);
            if(ch==90){
                System.out.print('a');
            }else if(65<=ch && ch<=90){
                System.out.print((char)(ch+33));
            }else if(97<=ch && ch<=122){
                System.out.print(map.get(ch));
            }else{
                System.out.print(ch);
            }
        }
    }
}

1、使用哈希表保存字符映射关系

2、利用ASSCII码做字符转换,大写字母从65~90,小写字母从97~122,大写变小写加32

全部评论

相关推荐

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