题解 | #字符串加解密#

字符串加解密

https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //获取输入值
        Scanner in = new Scanner(System.in);
        String s1 = in.nextLine();//需要加密的字符串
        String s2 = in.nextLine();//需要解密的字符串
        //加密
        String jiami = jiami(s1);
        //解密
        String jiemi = jiemi(s2);
        //输出结果
        System.out.println(jiami);
        System.out.println(jiemi);
    }

    private static String jiami(String s1) {
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < s1.length(); i++) {
            int cInt = s1.charAt(i);
            if ((cInt >= (int) 'A' && cInt <= (int) 'Y')) {
                stringBuffer.append(String.valueOf((char) ++cInt).toLowerCase());
            } else if ((cInt >= (int) 'a' && cInt <= (int) 'y')) {
                stringBuffer.append(String.valueOf((char) ++cInt).toUpperCase());
            } else if (cInt == (int) 'Z') {
                stringBuffer.append("a");
            } else if (cInt == (int) 'z') {
                stringBuffer.append("A");
            } else if (cInt >= (int) '0' && cInt <= (int) '8') {
                stringBuffer.append((char) ++cInt);
            } else if (cInt == (int) '9') {
                stringBuffer.append("0");
            }
        }
        return stringBuffer.toString();
    }

    private static String jiemi(String s1) {
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < s1.length(); i++) {
            int cInt = s1.charAt(i);
            if ((cInt >= (int) 'B' && cInt <= (int) 'Z')) {
                stringBuffer.append(String.valueOf((char) --cInt).toLowerCase());
            } else if ((cInt >= (int) 'b' && cInt <= (int) 'z')) {
                stringBuffer.append(String.valueOf((char) --cInt).toUpperCase());
            } else if (cInt == (int) 'A') {
                stringBuffer.append("z");
            } else if (cInt == (int) 'a') {
                stringBuffer.append("Z");
            } else if (cInt >= (int) '1' && cInt <= (int) '9') {
                stringBuffer.append((char) --cInt);
            } else if (cInt == (int) '0') {
                stringBuffer.append("9");
            }
        }
        return stringBuffer.toString();
    }
}

解题思路:

1, 按照字符串和ASC2码表之间的关系, 进行字符串判断和替换即可;

2, 注意加密和解密为相反操作

全部评论

相关推荐

牛客66512506...:那个百度acg是不是个小哥啊,老是问些底层问题狠狠为难,然后kpi
哪些公司在招寒假实习?
点赞 评论 收藏
分享
01-19 12:48
门头沟学院 C++
只想搞钱的鸽子很喜欢...:混账是很多的,还有那些在自己风华正茂的年纪说风凉话讥讽那些下岗前员工的。这些人都是现在职场环境这么烂的帮凶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务