/* * 解题思路: * 1. 小写 'a' ~ 'z' -> (ch - 'a') / 3 + '2'; 特殊: s, v, y, z -> + '1' * 3. 大写 'A' ~ 'Y' -> CH - ('a' - 'A'); 特殊: Z --> a * 2. 其它不变 * 提交失败: * 1. 输入->'v' 预期->'8' 实际->':' 原因是 'v' 错误处理成 + '2', 实际应该 + '1' * 2. 输出->'s' 预期->'7' 实际->'9' 原因是 's' 错误处理成 + '2', 实际应该 + '1' */ import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { char[] passwd = sc.nextLine().toCharArray(); for (int i = 0; i < passwd.length; i++) { char ch = passwd[i]; if (ch == 's' || ch == 'v' || ch == 'y' || ch == 'z') { passwd[i] = (char)((ch - 'a') / 3 + '1'); continue; } if (ch >= 'a' && ch <= 'z') { passwd[i] = (char)((ch - 'a') / 3 + '2'); continue; } if (ch >= 'A' && ch < 'Z') { passwd[i] = (char)(ch + ('a' - 'A') + 1); continue; } if (passwd[i] == 'Z') { passwd[i] = 'a'; continue; } } System.out.println(new String(passwd)); } } }