题解 | #字符串加解密#

字符串加解密

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

import java.util.*;

/**
 * 加密方法为:
 * 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
 * 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
 * 其他字符不做变化。
 * 解密方法为加密的逆过程。
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {
            String str = in.nextLine(); // 要加密的串
            String str2 = in.nextLine(); // 要解密的串
            final char[] chars = str.toCharArray();
            final char[] chars2 = str2.toCharArray();
            StringBuilder sb = new StringBuilder(); // 加密后的串
            StringBuilder sb2 = new StringBuilder(); // 解密后的串
            for (char ch : chars) {
                if (ch >= 'a' && ch <= 'z') {
                    sb.append(Character.toUpperCase(ch == 'z' ? 'a' : (char)(ch + 1)));
                } else if (ch >= 'A' && ch <= 'Z') {
                    sb.append(Character.toLowerCase(ch == 'Z' ? 'A' : (char)(ch + 1)));
                } else if (ch >= '0' && ch <= '9') {
                    sb.append(ch == '9' ? "0" : Integer.parseInt(ch + "") + 1);
                }
            }
            for (char ch : chars2) {
                if (ch >= 'a' && ch <= 'z') {
                    sb2.append(Character.toUpperCase(ch == 'a' ? 'z' : (char)(ch - 1)));
                } else if (ch >= 'A' && ch <= 'Z') {
                    sb2.append(Character.toLowerCase(ch == 'A' ? 'Z' : (char)(ch - 1)));
                } else if (ch >= '0' && ch <= '9') {
                    sb2.append(ch == '0' ? "9" : Integer.parseInt(ch + "") - 1);
                }
            }
            System.out.println(sb.toString());
            System.out.println(sb2.toString());
        }
    }

}

全部评论

相关推荐

瑞雪兆丰年_:可以贴个超级大的校徽,以防HR眼拙
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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