课后作业之字符串加密

本文介绍了一个简单的字符串加密和解密程序。程序采用字符数组处理方式,实现对字符串的加密和解密功能,并能妥善处理大小写字母边界情况。

一:程序设计思想:

该程序开始先输出菜单提示用户输入选项进行操作是要加密还是要解密,通过校验后进行相应操作,加密字符串时先输入要加密的字符串,然后用字符串的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值