加解密算法

题目描述

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();
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执于代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值