这样做非常容易理解

字符串加解密

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        /**
         * 对输入的字符串进行加解密,并输出。
         *
         * 加密方法为:
         *
         * 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
         *
         * 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
         *
         * 其他字符不做变化。
         *
         * 解密方法为加密的逆过程。
         * 数据范围:输入的两个字符串长度满足
         * 1 ≤ 𝑛 ≤ 1000
         *
         * 1≤n≤1000  ,保证输入的字符串都是只由大小写字母或者数字组成
         */
        Scanner sc = new Scanner(System.in);
        String s1 = sc.nextLine();
        String s2 = sc.nextLine();

        StringBuilder builder1 = new StringBuilder();
        // 加密
        for (char c : s1.toCharArray()) {
            if (c >= 'a' && c <= 'z') {
                if (c == 'z') {
                    c = 'A';
                } else {
                    // 移到下一位并转换大小写
                    c = Character.toUpperCase(++c);
                }
            } else if (c >= 'A' && c <= 'Z') {
                if (c == 'Z') {
                    c = 'a';
                } else {
                    // 下一位且转换大小写
                    c = Character.toLowerCase(++c);
                }
            } else if (c >= '0' && c <= '9') {
                if (c == '9') {
                    c = '0';
                } else {
                    c = ++c;
                }
            }
            // 其他字符不会修改原有的字符值
            builder1.append(c);

        }

        StringBuilder builder2 = new StringBuilder();

        // 解密
        for (char c : s2.toCharArray()) {
            if (c >= 'a' && c <= 'z') {
                if (c == 'a') {
                    c = 'Z';
                } else {
                    // 移到上一位并转换大小写
                    c = Character.toUpperCase(--c);
                }
            } else if (c >= 'A' && c <= 'Z') {
                if (c == 'A') {
                    c = 'z';
                } else {
                    // 上一位且转换大小写
                    c = Character.toLowerCase(--c);
                }
            } else if (c >= '0' && c <= '9') {
                if (c == '0') {
                    c = '9';
                } else {
                    c = --c;
                }
            }
            // 其他字符不会修改原有的字符值
            builder2.append(c);
        }

        System.out.println(builder1);
        System.out.println(builder2);

    }
}

全部评论

相关推荐

零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-17 14:38
干个蛋,干不了一点!!!!我真服了,还没搞完,很急。&nbsp;今天ddl,活没干完直接通宵,刺激。食堂很好吃,感觉离职的时候会胖10斤。mt喜欢能直接干活的,没空指导我,很难受。每个人都是笑嘻嘻的,但是从他们聊天中都能感受到各种试探,我有点慌了大家真的nb,都能准时完成工作下班,我羡慕啊!!!!!每天好累,想离职了💔
牛客26106072...:能去字节实习说明你的能力挺被认可的,实习中的这种累更有利于个人职场成长,试着当熬夜打游戏一样熬一熬,实习的意义就是看自己的差距和适应能力,总比等到工作时各种不适应辞职要好得多吧?
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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