对字符串加密 华为测试题

    /**
     * 对字符串加密
     */
    public static String encodeStr(String srcDecodeStr){
        if (srcDecodeStr == null || srcDecodeStr.trim().isEmpty()) {
            System.out.println("输入待加密字符串为空!");
            return null;
        }
        int length = srcDecodeStr.length();
        if (length>1000){
            System.out.println("输入待加密字符串太长,超过1000个字符!");
            return null;
        }
        for (int i = 0; i < length; i++) {
            char charTemp = srcDecodeStr.charAt(i);
            if (!(Character.isDigit(charTemp) || Character.isLowerCase(charTemp) || Character.isUpperCase(charTemp))){
                System.out.println("输入待加密字符串非法!");
                return null;
            }
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < length; i++) {
            Character encodeChar=null;
            char charTemp = srcDecodeStr.charAt(i);
            if (Character.isDigit(charTemp)){
                if (charTemp < '9'){
                    encodeChar = (char) (charTemp + 1);
                }else {
                    encodeChar='0';
                }
            }else {
                if (Character.isLowerCase(charTemp)){
                    char newChar = (char) (charTemp - 32);
                    if (newChar < 'Z'){
                        encodeChar = (char) (newChar + 1);
                    }else {
                        encodeChar='A';
                    }
                }else {
                    char newChar = (char) (charTemp + 32);
                    if (newChar < 'z'){
                        encodeChar = (char) (newChar + 1);
                    }else {
                        encodeChar='a';
                    }
                }
            }
            stringBuilder.append(encodeChar);
        }
        return stringBuilder.toString();
    }

    /**
     * 对字符串进行解密
     */
    public static String decodeStr(String srcEncodeStr){
        if (srcEncodeStr == null || srcEncodeStr.trim().isEmpty()) {
            System.out.println("输入待解密字符串为空!");
            return null;
        }
        int length = srcEncodeStr.length();
        if (length>1000){
            System.out.println("输入待解密字符串太长,超过1000个字符!");
            return null;
        }
        for (int i = 0; i < length; i++) {
            char charTemp = srcEncodeStr.charAt(i);
            if (!(Character.isDigit(charTemp) || Character.isLowerCase(charTemp) || Character.isUpperCase(charTemp))){
                System.out.println("输入待加密字符串非法!");
                return null;
            }
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < length; i++) {
            Character decodeChar=null;
            char charTemp = srcEncodeStr.charAt(i);
            if (Character.isDigit(charTemp)){
                if (charTemp > '0'){
                    decodeChar = (char) (charTemp - 1);
                }else {
                    decodeChar='9';
                }
            }else {
                if (Character.isLowerCase(charTemp)){
                    char newChar = (char) (charTemp - 32);
                    if (newChar > 'A'){
                        decodeChar = (char) (newChar - 1);
                    }else {
                        decodeChar='Z';
                    }
                }else {
                    char newChar = (char) (charTemp + 32);
                    if (newChar > 'a'){
                        decodeChar = (char) (newChar - 1);
                    }else {
                        decodeChar='z';
                    }
                }
            }
            stringBuilder.append(decodeChar);
        }
        return stringBuilder.toString();
    }

#我想去国央企的原因##机械人值得去的车企##实习要如何选择和准备?#
Java技术 文章被收录于专栏

JavaEE技术 编程开发经验 企业通用技术

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务