题解 | #简单密码#
简单密码
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()); } }