字符串加解密

题目描述
1、对输入的字符串进行加解密,并输出。
2加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
3、解密方法为加密的逆过程。

直接上代码

/**
     * 
     * @param string
     *            要处理的字符串
     */
    public static void encryptAndunEncrypt(String string) {
        String[] strs = string.split(" ");
        String strEncrypt = strs[0];
        String strunEncrypt = strs[1];
        StringBuilder sbEn = new StringBuilder();
        StringBuilder sbunEn = new StringBuilder();
        for (int i = 0; i < strEncrypt.length(); i++) {
            if (Character.isLetter(strEncrypt.charAt(i))) {
                if (Character.isLowerCase(strEncrypt.charAt(i))) {
                    if (strEncrypt.charAt(i) >= 'a' && strEncrypt.charAt(i) < 'z') {
                        sbEn.append((char) Character.toUpperCase(strEncrypt.charAt(i) + 1));
                    } else {
                        sbEn.append((char) 'A');
                    }
                } else {
                    if (strEncrypt.charAt(i) >= 'A' && strEncrypt.charAt(i) < 'Z') {
                        sbEn.append((char) Character.toLowerCase(strEncrypt.charAt(i) + 1));
                    } else {
                        sbEn.append((char) 'a');
                    }
                }
            } else if (Character.isDigit(strEncrypt.charAt(i))) {
                if (strEncrypt.charAt(i) < '9') {
                    sbEn.append((char) (strEncrypt.charAt(i) + 1));
                } else {
                    sbEn.append((char) '0');
                }
            } else {
                sbEn.append((char) strEncrypt.charAt(i));
            }
        }
        // 解秘
        for (int i = 0; i < strunEncrypt.length(); i++) {
            if (Character.isLetter(strunEncrypt.charAt(i))) {
                if (Character.isLowerCase(strunEncrypt.charAt(i))) {
                    if (strunEncrypt.charAt(i) > 'a' && strunEncrypt.charAt(i) <= 'z') {
                        sbunEn.append((char) Character.toUpperCase(strunEncrypt.charAt(i) - 1));
                    } else {
                        sbunEn.append((char) 'Z');
                    }
                } else {
                    if (strunEncrypt.charAt(i) > 'A' && strunEncrypt.charAt(i) <= 'Z') {
                        sbunEn.append((char) Character.toLowerCase(strunEncrypt.charAt(i) - 1));
                    } else {
                        sbunEn.append((char) 'z');
                    }
                }
            } else if (Character.isDigit(strunEncrypt.charAt(i))) {
                if (strunEncrypt.charAt(i) > '0') {
                    sbunEn.append((char) (strunEncrypt.charAt(i) - 1));
                } else {
                    sbunEn.append((char) '9');
                }
            } else {
                sbunEn.append((char) strunEncrypt.charAt(i));
            }
        }
        System.out.println(sbEn.toString() + " " + sbunEn.toString());
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT布道者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值