题目描述

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

2加密方法为:

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

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

其他字符不做变化。

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

接口描述:

    实现接口,每个接口实现1个基本操作:

void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

 

int unEncrypt (char result[], char password[]):在该函数中实现字符串解密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

输入描述:

输入说明
输入一串要加密的密码
输入一串加过密的密码

输出描述:

输出说明
输出加密后的字符
输出解密后的字符

输入例子:
abcdefg
BCDEFGH
出例子:
BCDEFGH
abcdefg
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            char[] enc = in.nextLine().toCharArray();
            char[] unEnc = in.nextLine().toCharArray();
            Encrypt(enc);
            System.out.println(charsToStr(enc));
            unEncrypt(unEnc);
            System.out.println(charsToStr(unEnc));
        }
    }
    private static void unEncrypt(char[] chars){
        for(int i=0;i<chars.length ;i++){
            if(isDigits(chars[i])){
                if(chars[i] == '0'){
                    chars[i] = '9';
                }else{
                    chars[i] = (char) (chars[i] - 1);
                }
            }else if(isUpperCase(chars[i])){
                if(chars[i] == 'A')
                    chars[i] = 'z';
                else
                    chars[i] = (char) (chars[i] - 'A' + 'a' -1);
            }else if(isLowCase(chars[i])){
                if(chars[i] == 'a')
                    chars[i] = 'Z';
                else
                    chars[i] = (char) (chars[i] - 'a' + 'A' -1 );
            }
            
        }
    }
    
    private static void Encrypt(char[] str){
        for(int i=0;i<str.length ;i++){
            if(isDigits(str[i])){
                if(str[i] == '9'){
                    str[i] = '0';
                }else{
                    str[i] = (char) (str[i] + 1);
                }
            }else if(isUpperCase(str[i])){
                if(str[i] == 'Z')
                    str[i] = 'a';
                else
                    str[i] = (char) (str[i] - 'A' + 'a' +1);
            }else if(isLowCase(str[i])){
                if(str[i] == 'z')
                    str[i] = 'A';
                else
                    str[i] = (char) (str[i] - 'a' + 'A' +1 );
            }
            
        }
    }
    private static String charsToStr(char[] chars){
        StringBuffer sb = new StringBuffer();
        for(char ch:chars){
            sb.append(ch);
        }
        return sb.toString();
    }
    
    private static boolean isDigits(char ch){
        if(ch >= '0' && ch<='9')
            return true;
        return false;
    }
    private static boolean isUpperCase(char ch){
        if(ch>='A' && ch<='Z')
            return true;
        return false;
    }
    private static boolean isLowCase(char ch){
        return ch>='a' && ch<='z';
    }
    private static boolean isWord(char ch){
        return isUpperCase(ch) || isLowCase(ch);
    }
}