题解 | #简单密码#
简单密码
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());
}
}
查看16道真题和解析