题解 | #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Map<String, Integer> map = new HashMap<>();
map.put("1", 1);
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);
map.put("0", 0);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
String str = in.nextLine();
StringBuilder sb = new StringBuilder();
for (char a : str.toCharArray()) {
if (Character.isUpperCase(a)) {
char low = Character.toLowerCase(a);
if (low == 'z') {
char c = (char) (low - 25);
sb.append(c);
} else {
char c = (char) (low + 1);
sb.append(c);
}
} else {
String s = map.get(String.valueOf(a)) == null ? String.valueOf(
a) : String.valueOf(map.get(String.valueOf(a)));
sb.append(s);
}
}
System.out.println(sb);
}
}
}