题解 | HJ21#简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
// 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0
// 把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
// 而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
ArrayList<String> list = new ArrayList<>();
if (s.length() <= 100) {
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == 'a' || chars[i] == 'b' || chars[i] == 'c') {
list.add(String.valueOf(2));
} else if (chars[i] == 'd' || chars[i] == 'e' || chars[i] == 'f') {
list.add(String.valueOf(3));
} else if (chars[i] == 'g' || chars[i] == 'h' || chars[i] == 'i') {
list.add(String.valueOf(4));
} else if (chars[i] == 'j' || chars[i] == 'k' || chars[i] == 'l') {
list.add(String.valueOf(5));
} else if (chars[i] == 'm' || chars[i] == 'n' || chars[i] == 'o') {
list.add(String.valueOf(6));
} else if (chars[i] == 'p' || chars[i] == 'q' || chars[i] == 'r' ||
chars[i] == 's') {
list.add(String.valueOf(7));
} else if (chars[i] == 't' || chars[i] == 'u' || chars[i] == 'v') {
list.add(String.valueOf(8));
} else if (chars[i] == 'w' || chars[i] == 'x' || chars[i] == 'y' ||
chars[i] == 'z') {
list.add(String.valueOf(9));
} else if (chars[i] == '1') {
list.add(String.valueOf(1));
} else if (chars[i] == '0') {
list.add(String.valueOf(0));
}
// 例外:Z 往后移是 a 。
else if (65 <= (int)chars[i] && (int)chars[i] <= 89) {
int num = (int)chars[i] + 1;
char ch = (char)num ;
list.add(String.valueOf(ch).toLowerCase());
} else if ((int)chars[i] == 90) {
list.add(String.valueOf('a'));
} else {
list.add(String.valueOf(chars[i]));
}
}
}
for (String s1 : list) {
System.out.print(s1);
}
}
}
阿里云成长空间 747人发布
查看14道真题和解析