题解 | #字符串加解密#

字符串加解密

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        scanner.useDelimiter("\n");
        while (scanner.hasNext()) {
            String S = scanner.next();
            String T = scanner.next();
            jiami(S);
            jiemi(T);
        }
    }

    public static void jiami(String S) {
        for (int i = 0; i < S.length(); i++) {
            char c = S.charAt(i);
            if (Character.isLetter(c)) {
                 System.out.print(change(c));
             } else if (Character.isDigit(c)){
                 System.out.print(change(c));
             } else {
                System.out.print(c);
            }
        }
        System.out.println();
    }

    public static void jiemi(String S) {
        for (int i = 0; i < S.length(); i++) {
            char c = S.charAt(i);
            if (Character.isLetter(c)) {
                System.out.print(change2(c));
            } else if (Character.isDigit(c)){
                System.out.print(change2(c));
            } else {
                System.out.print(c);
            }

        }
        System.out.println();
    }

    public static char change(char c) {
        if (Character.isLetter(c)) {
            if (c=='Z') return 'a';
            else if (c=='z') return 'A';
            else if (c>='a'&&c<'z') return Character.toUpperCase((char) (c+1));
            else {
                return Character.toLowerCase((char) (c+1));
            }
        } else if (Character.isDigit(c)){
            if (c=='9') return '0';
            else return (char) (c+1);
        }
        return c;
    }

    public static char change2(char c) {
        if (Character.isLetter(c)) {
            if (c=='A') return 'z';
            else if (c=='a') return 'Z';
            else if (c>'a'&&c<='z') return Character.toUpperCase((char) (c-1));
            else {
                return Character.toLowerCase((char) (c-1));
            }
        } else if (Character.isDigit(c)){
            if (c=='0') return '9';
            else return (char) (c-1);
        }
        return c;
    }
}

全部评论

相关推荐

02-10 12:23
已编辑
新余学院 C++
采集想要offer:专业技能那里要一条一条的列出来吧,感觉你项目很厉害了,但是如果你不写技术栈面试官对你项目不太懂的话都没办法问你八股😂C++都是基架岗,都是一群9✌🏻在卷,我觉得你要是有时间学个go把MySQL和redis写上去找个开发岗吧
点赞 评论 收藏
分享
lingo12:1.最好加个业务项目,大部分面试官工作以后会更偏重业务 2.实习部分描述一般般,可能hr看到会觉得你产出不够不给你过简历 3.蓝桥杯这些大部分人都有的,不如不写,反而减分项。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务