1.设计思想
先把输入的字符串转化为字符数组,利用for循环对字符进行加密,或者解密,最后注意把26个英文字母中的A B C和X Y Z互相进行转换,从而完成加密。
2.程序流程图
3.源代码
package test2;
import java.util.Scanner;//引入Scanner类包
public class JiaMi
{
public static void main(String[] args)
{
System.out.println("选择要进行的操作:1-加密 2-解密");
Scanner input=new Scanner(System.in);//输入语句
int c=input.nextInt();
if(c==1)
{
System.out.println("请输入要加密的字符串:");
String str=input.next();//将输入的字符串存到str中
char[] a=new char[str.length()];//创建字符数组a
a=str.toCharArray();//将用户输入的字符串通过toCharArray()转化为字符数组存到a中
for(int i=0;i<str.length();i++)//将用户输入的X、Y、Z特殊处理转化为A、B、C
{
if(a[i]=='X')
{
a[i]='A';
}
else if(a[i]=='Y')
{
a[i]='B';
}
else if(a[i]=='Z')
{
a[i]='C';
}
else
{
a[i]=(char)(a[i]+3);//将一般的数组字符直接加3然后强制类型转化为char类型
}
}
String s="";
for(int i=0;i<str.length();i++)//将字符数组转化为字符串
{
s=s+a[i];
}
System.out.println("加密后的字符串为:\n"+s);//输出语句
}
else if(c==2)
{
System.out.println("请输入要解密的字符串:");
String str=input.next();//将输入的字符串存到str中
char[] a=new char[str.length()];//创建字符数组a
a=str.toCharArray();//将用户输入的字符串通过toCharArray()转化为字符数组存到a中
for(int i=0;i<str.length();i++)//将用户输入的A、B、C特殊处理转化为X、Y、Z
{
if(a[i]=='A')
{
a[i]='X';
}
else if(a[i]=='B')
{
a[i]='Y';
}
else if(a[i]=='C')
{
a[i]='Z';
}
else
{
a[i]=(char)(a[i]-3);//将一般的数组字符直接减3然后强制类型转化为char类型
}
}
String s="";
for(int i=0;i<str.length();i++)//将字符数组转化为字符串
{
s=s+a[i];
}
System.out.println("解密后的字符串为:\n"+s);//输出语句
}
}
}
4.结果截图