7题解 | #字符串加解密#

字符串加解密

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String plaintext = in.nextLine();
        String ciphertext = in.nextLine();

        String cipher = encrypt(plaintext);
        String plain = decrypt(ciphertext);

        
        System.out.println(cipher);
        System.out.println(plain);
        
    }

    public static String encrypt(String plaintext){
        StringBuilder sb = new StringBuilder();
        char [] ch = plaintext.toCharArray();
        for(int i = 0;i<plaintext.length();i++){
            if(Character.isLowerCase(ch[i]) && ch[i]!='z'){
                sb.append((char)(ch[i] - 32 + 1));
                continue;
            }
            if(Character.isUpperCase(ch[i]) && ch[i]!='Z'){
                sb.append((char)(ch[i] + 32 + 1));
                continue;
            }
            if(ch[i]=='z'){
                sb.append('A');
                continue;
            }
            if(ch[i]=='Z'){
                sb.append('a');
                continue;
            }
            if(ch[i]>='0' && ch[i]<='8'){
                sb.append(Integer.valueOf(ch[i]+"") + 1);
                continue;
            }
            if(ch[i]=='9'){
                sb.append(0);
                continue;
            }
            sb.append(ch[i]);
        }
        
return sb.toString();
    }
    public static String decrypt(String ciphertext){
        StringBuilder sb = new StringBuilder();
        char [] ch = ciphertext.toCharArray();
        for(int i = 0;i<ciphertext.length();i++){
            if(Character.isLowerCase(ch[i]) && ch[i]!='a'){
                sb.append((char)(ch[i] - 32 - 1));
                continue;
            }
            if(Character.isUpperCase(ch[i]) && ch[i]!='A'){
                sb.append((char)(ch[i] + 32 - 1));
                continue;
            }

            if(ch[i]=='a'){
                sb.append('Z');
                continue;
            }
            if(ch[i]=='A'){
                sb.append('z');
                continue;
            }

            if(ch[i]>='1' && ch[i]<='9'){
                sb.append(Integer.valueOf(ch[i]+"") - 1);
                continue;
            }
            
            if(ch[i]=='0'){
                sb.append(9);
                continue;
            }
            sb.append(ch[i]);
        }
        
        return sb.toString();
    }
}

全部评论

相关推荐

沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务