import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main(String []args) throws Exception{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); // 获取输入字符串 String s1 = br.readLine(); // 待加密字符串 String s2 = br.readLine(); // 待解密字符串 System.out.println(encode(s1)); // 输出加密后的结果 System.out.println(decode(s2)); // 输出解密后的结果 } // 加密函数 private static String encode(String code) { //将输入字符串转换为字符数组 char[] t = code.toCharArray(); // 遍历转换每一个字符 for (int i = 0; i < t.length; i++) { // 当前字符为小写字母(不含z) if (t[i] >= 'a' && t[i] < 'z') { // 先减小写再加大写,最后加1,通过隐式转换实现,不用查ASCII码 t[i] = (char)(t[i] - 'a' + 'A' + 1); // 巧妙的方法 } else if (t[i] == 'z') t[i] = 'A'; // 单独处理z这种边界特殊情况 // 当前字符为大写字母(不含Z) else if (t[i] >= 'A' && t[i] < 'Z') { // 先减大写再加小写,实现大写转小写的效果 t[i] = (char)(t[i] - 'A' + 'a' + 1); } else if (t[i] == 'Z') t[i] = 'a'; // 特殊情况特殊处理 // 当前字符为数字 else if (t[i] >= '0' && t[i] < '9') t[i] = (char)(t[i] + 1); else if (t[i] == '9') t[i] = '0'; // 特殊情况特殊处理 } // 字符数组遍历完毕 // 字符数组转回字符串后返回 return String.valueOf(t); } //解密函数 结构大致同上 private static String decode(String password){ char[] t = password.toCharArray(); for(int i=0; i < t.length; i++){ if(t[i]>'a' && t[i]<='z') t[i] = (char)(t[i] - 'a' + 'A' - 1); else if(t[i] == 'a') t[i] = 'Z'; else if(t[i]>'A' && t[i]<='Z') t[i] = (char)(t[i] - 'A' + 'a' - 1); else if(t[i] == 'A') t[i] = 'z'; else if(t[i]>'0' && t[i]<='9') t[i] = (char)(t[i]-1); else if(t[i] == '0') t[i] = '9'; } return String.valueOf(t); } }