使用的笨办法,欢迎交流

import java.util.*;

public class Main{
    public static void code(String str){
        /**
         *    加密过程
         */
        char[] ch = str.toCharArray();
        //如果是小写字母,则用其大写字母的后一个字母替换
        for(int i = 0; i < str.length(); i++){
            //如果是大写字母,则将其ASCII码加33
            if(ch[i] >= 65 && ch[i] < 90){
                ch[i] = (char)(ch[i] + 33);
                //如果是'Z',将其替换为'a'
            } else if(ch[i] == 90) {
                ch[i] = 'a';
                //如果是小写字母,将其ASCII码减31
            } else if(ch[i] >= 97 && ch[i] < 122) {
                ch[i] = (char)(ch[i] - 31);
                //如果是'z',将其替换成'A'
            } else if(ch[i] == 122){
                ch[i] = 'A';
                //如果是数字,将该数字加1
            } else if(ch[i] >= 48 && ch[i] < 57){
                ch[i] = (char)(ch[i] + 1);
                //如果是9,将其替换为0
            } else if(ch[i] == '9'){
                ch[i] = '0';
            }
        }
        //加密完成后遍历输出数组
        for(char a : ch){
            System.out.print(a);
        }
    }

    public static void deCode(String str2){
        /**
        *    解密过程
        */
        char[] ch2 = str2.toCharArray();
        //如果是小写字母,则用其大写字母的后一个字母替换,ASCII码值加31
        for(int i = 0; i < str2.length(); i++){
            if(ch2[i] > 65 && ch2[i] <= 90){
                ch2[i] = (char)(ch2[i] + 31);
                //如果是'A',用'z'替换
            } else if(ch2[i] == 65) {
                ch2[i] = 'z';
                //如果是小写字母,ASCII码减33
            } else if(ch2[i] > 97 && ch2[i] <= 122) {
                ch2[i] = (char)(ch2[i] -33);
                //如果是'a',则替换成'Z'
            } else if(ch2[i] == 97){
                ch2[i] = 'Z';
            } else if(ch2[i] > 48 && ch2[i] <= 57){
                //如果是数字,减1
                ch2[i] = (char)(ch2[i] - 1);
            } else if(ch2[i] == 48){
                //如果是0,替换成9
                ch2[i] = '9';
            }
        }
        //解码后遍历输出数组
        for(char b : ch2){
            System.out.print(b);
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        /**
            num用于统计函数,从偶数行开始获取输入内容,
            因为本题含有多组样例输入,奇数行为未加密字符,偶数行为已加密内容,
            所有由num的奇偶性来判断输入的内容是否是加密的
        */
        int num = 1;
        while(sc.hasNext()){
            num++;
            if(num % 2 == 0){
                //读取第一行输入的内容
                String str = sc.nextLine();
                //加密
                code(str);
                //加密解密操作中间换行显示
                System.out.println();
                //读取第二行输入的内容
                String str2 = sc.nextLine();
                //解码
                deCode(str2);
            }
            //每组加密解密完成后换行
            if(num % 2 == 1){
                System.out.println();
            }
        }
    }
}