程序思想
利用asic码的数值加(减)三来实现加密(解密)
在特殊情况时(yxz)特殊处理
流程图
import java.util.Scanner;
public class kaisa {
public static char[] encrypation(String str)
{//加密方法
char chararry[] = str.toCharArray();//把字符串转化为字符数组
for(int i =0; i< str.length(); i++)
{
//当读到字母表后3位时,加密后是字母表前三位
if(str.charAt(i) >= 88 && str.charAt(i) <= 90)
{//大写时
chararry[i] = (char)(str.charAt(i) - 23);
}
else if(str.charAt(i) >= 120 && str.charAt(i) <= 122)
{//小写时
chararry[i] = (char)(str.charAt(i) - 23);
}
//一般加密方法
else
{
chararry[i]= (char) (str.charAt(i) + 3) ;
}
}
return chararry;
}
public static char[] deciphering(String str)
{//j解密方法
char chararry[] = str.toCharArray();
for(int i =0; i< str.length(); i++)
{
//当读到字母表前3位时,加密后是字母表后三位
if(str.charAt(i) >= 65 && str.charAt(i) <= 67)
{//大写时
chararry[i] = (char)(str.charAt(i) + 23);
}
else if(str.charAt(i) >= 97 && str.charAt(i) <= 99)
{//小写时
chararry[i] = (char)(str.charAt(i) + 23);
}
//一般解密密方法
else
{
chararry[i]= (char) (str.charAt(i) - 3) ;
}
}
return chararry;
}
public static void main(String[] args) {
Scanner imput1 = new Scanner(System.in);
Scanner imput2 = new Scanner(System.in);
System.out.println("加密字符串输入---1---");
System.out.println("解密字符串输入---2---");
System.out.print("请输入:");
int flag = imput1.nextInt();
System.out.print("请输入一个英文字符串:");
String string = imput2.nextLine();
if(flag == 1)
{
System.out.print("经过加密后为:");
for(int i =0;i <string.length(); i++)
{
System.out.print(Tast2.encrypation(string)[i]);
}
}
if(flag == 2)
{
System.out.print("经过解密后为:");
for(int i =0;i <string.length(); i++)
{
System.out.print(Tast2.deciphering(string)[i]);
}
}
imput1.close();
imput2.close();
}
}
运行截图