题目描述
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); } }