题解 | #简单密码#
简单密码
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