题解 | #字符串加解密#

字符串加解密

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

String相等用 equals()

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str1 = in.nextLine();
        String str2 = in.nextLine();
        StringBuffer sb1 = new StringBuffer();
        StringBuffer sb2 = new StringBuffer();

        String regexUpperCase = "[A-Z]";
        String regexLowerCase = "[a-z]";
        String regexNum = "[0-9]";

        //加密
        for (int i = 0; i < str1.length(); i++) {
            String str = str1.substring(i, i + 1);

            //大写变换小写
            if (str.matches(regexUpperCase)) {
                if ("Z".equals(str)) {
                    sb1.append("a");
                } else {
                    char ch = (char)((str.toLowerCase().charAt(0)) + 1);
                    sb1.append(ch + "");
                }
            }
            //小写变化大写
            else if (str.matches(regexLowerCase)) {
                if ("z".equals(str)) {
                    sb1.append("A");
                } else {
                    char ch = (char)(str.charAt(0) + 1);
                    sb1.append((ch + "").toUpperCase());
                }
                //数字
            } else if (str.matches(regexNum)) {
                if ("9".equals(str)) {
                    sb1.append("0");
                } else {
                    char ch = (char)(str.charAt(0) + 1);
                    sb1.append(ch + "");
                }
            } else {
                sb1.append(str);
            }
        }

        //解密
        for (int i = 0; i < str2.length(); i++) {
            String str = str2.substring(i, i + 1);

            //大写变换小写
            if (str.matches(regexUpperCase)) {
                if ("A".equals(str)) {
                    sb2.append("z");
                } else {
                    char ch = (char)((str.toLowerCase().charAt(0)) - 1);
                    sb2.append(ch + "");
                }
            }
            //小写变化大写
            else if (str.matches(regexLowerCase)) {
                if ("a".equals(str)) {
                    sb2.append("Z");
                } else {
                    char ch = (char)(str.charAt(0) - 1);
                    sb2.append((ch + "").toUpperCase());
                }
                //数字
            } else if (str.matches(regexNum)) {
                if ("0".equals(str)) {
                    sb2.append("9");
                } else {
                    char ch = (char)(str.charAt(0) - 1);
                    sb2.append(ch + "");
                }
            } else {
                sb2.append(str);
            }
        }
        System.out.println(sb1);
        System.out.println(sb2);
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:26
点赞 评论 收藏
分享
想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
07-19 13:28
长沙学院 Java
鸿哥鸿哥:学院(一本),感觉在脱ku子放屁,学院结尾的除了那几家出名的,一律按二本处理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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