加解密算法
程序员文章站
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();
}
}