课后作业之字符串加密

一:程序设计思想:

该程序开始先输出菜单提示用户输入选项进行操作是要加密还是要解密,通过校验后进行相应操作,加密字符串时先输入要加密的字符串,然后用字符串的toCharArray()方法将字符串转化为char类型数组,然后用循环分别给char类型元素加3,当遇到空格时不加三,对于大写的XYZ三个字母以及小写的xyz三个字母要进行特殊的处理,即要进行加完三后还要减去26,让他们循环到大写的ABC或小写的abc上,对于解密方法,程序一致,只是把加三换成减三,加26换成减26;最后输出相应的字符串。

二:程序流程图:

三:程序源代码:

import java.util.Scanner;
public class Password
{
public static void main(String [] args)
{
Scanner input=new Scanner(System.in);
System.out.println("1 加密");          //输出菜单
System.out.println("2 解密");
System.out.println("请选择");
int choose=input.nextInt();
while(choose!=1&&choose!=2)                               //校验choose
{
System.out.println("输入的选项不符合要求,请重新输入:");
choose=input.nextInt();
}
if(choose==1)                                                           //choose=1进行字符串加密
{
String jiami = null;
System.out.println("请输入要加密的字符串:");
input.nextLine();
jiami=input.nextLine();
char ch[]=jiami.toCharArray();
System.out.println("加密后为:");
for(int i=0;i<jiami.length();i++)
{
if(ch[i]==' ')ch[i]=' ';
else
ch[i]=(char) (ch[i]+3);
if(ch[i]>'Z'&&ch[i]<(char)'Z'+4||ch[i]>'z')
ch[i]=(char) (ch[i]-26);
System.out.print(ch[i]);
}
}
if(choose==2)                //choose=2进行字符串解密
{
String jiemi = null;
System.out.println("请输入要解密的字符串:");
input.nextLine();
jiemi=input.nextLine();
char ch1[]=jiemi.toCharArray();
System.out.println("解密后为:");
for(int i=0;i<jiemi.length();i++)
{
if(ch1[i]==' ')ch1[i]=' ';
else
ch1[i]=(char) (ch1[i]-3);
if(ch1[i]>'A'-4&&ch1[i]<'A'||ch1[i]>(char)'a'-4&&ch1[i]<'a')
ch1[i]=(char) (ch1[i]+26);
System.out.print(ch1[i]);
}
}

}

}

四:结果截图:

原文地址:https://www.cnblogs.com/zhangliqiangvictory/p/7727039.html