欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

加解密算法

程序员文章站 2023-12-26 16:33:03
...

题目描述

1、对输入的字符串进行加解密,并输出。

2加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

其他字符不做变化。

3、解密方法为加密的逆过程。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
   
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line = "";
        while((line=br.readLine())!=null)
        {
             String encryp = Encryp(line);
             System.out.println(encryp);
             line=br.readLine();
             String unencryp = Unencryp(line);
             System.out.println(unencryp);
        }
    }
    private static String Encryp(String line) {  //编码加密
        StringBuilder  sb = new StringBuilder();
        char[] chs = line.toCharArray();
        for(int i=0;i<chs.length;++i)
        {
            if(chs[i]>='a'&&chs[i]<='z'){
                if(chs[i] == 'z')
                    sb.append("A");
                else
                    sb.append((char)(chs[i]+1-32));
            }
            else if(chs[i]>='A'&&chs[i]<='Z'){
                if(chs[i] == 'Z')
                    sb.append("a");
                else
                    sb.append((char)(chs[i]+1+32));
            }
            else if(chs[i]>='0'&&chs[i]<='9')
                sb.append((chs[i]-48+1)%10);
            else
                sb.append(chs[i]);
        }
        return sb.toString();
    }
    private static String Unencryp(String line) {    //解码
        StringBuilder  sb = new StringBuilder();
        char[] chs = line.toCharArray();
        for(int i=0;i<chs.length;++i)
        {
            if(chs[i]>='a'&&chs[i]<='z'){
                if(chs[i] == 'a')
                    sb.append("Z");
                else
                    sb.append((char)(chs[i]-32-1));
            }
            else if(chs[i]>='A'&&chs[i]<='Z'){
                if(chs[i] == 'A')
                    sb.append("z");
                else
                    sb.append((char)(chs[i]+32-1));
            }
            else if(chs[i]>='0'&&chs[i]<='9')
                if(chs[i] == '0')
                    sb.append('9');
                else
                    sb.append(chs[i]-48-1);
            else
                sb.append(chs[i]);
        }
        return sb.toString();
    }
}

 

上一篇:

下一篇: