关闭

字符串加解密

177人阅读 评论(0) 收藏 举报
分类:

题目描述
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());
    }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35071次
    • 积分:1066
    • 等级:
    • 排名:千里之外
    • 原创:71篇
    • 转载:13篇
    • 译文:2篇
    • 评论:1条
    最新评论