题解 | 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); } } }