|
题目描述
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)){
if(chars == '0'){
chars = '9';
}else{
chars = (char) (chars - 1);
}
}else if(isUpperCase(chars)){
if(chars == 'A')
chars = 'z';
else
chars = (char) (chars - 'A' + 'a' -1);
}else if(isLowCase(chars)){
if(chars == 'a')
chars = 'Z';
else
chars = (char) (chars - 'a' + 'A' -1 );
}
}
}
private static void Encrypt(char[] str){
for(int i=0;i<str.length ;i++){
if(isDigits(str)){
if(str == '9'){
str = '0';
}else{
str = (char) (str + 1);
}
}else if(isUpperCase(str)){
if(str == 'Z')
str = 'a';
else
str = (char) (str - 'A' + 'a' +1);
}else if(isLowCase(str)){
if(str == 'z')
str = 'A';
else
str = (char) (str - '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);
}
} |
|
|
|
|
|
|