一:程序设计思想:

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

课后作业之字符串加密相关推荐

  1. md5可以解密吗_Python训练营作业1:加密解密

    Python训练营作业1:加密解密 import random#定义加密方式 def encrypt(keyword):"""对称加密:keyword: 明文:retur ...

  2. JAVA语法基础 动手动脑及课后作业

    动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...

  3. day 13 课后作业

    # -*- coding: utf-8 -*-# @Time : 2019/1/7 18:00# @Author : Endless-cloud# @Site : # @File : day 13 课 ...

  4. 同声传译系统matlab,知到网课答案英语基础口译课后作业答案

    知到网课答案英语基础口译课后作业答案 更多相关 单选(2分) 连分式近似调用的MATLAB函数为() 单选(2分) 求解最小二乘曲线拟合问题调用的MATLAB函数是() 单选(2分) Mittag-L ...

  5. 慕课软件质量保证与测试(第三章.课后作业)

    慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.课后作业 0 目录 3 黑盒测试 3.10 课后作业 3.10.1课堂重点 3.10.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.10 ...

  6. 【小甲鱼Python】递归:这帮小兔崽子、汉诺塔课后作业

    笔记 斐波那契数列 汉诺塔 有64个盘子,三根柱子(从左至右依次为x,y,z柱).要求将这64个盘子从x移动到z上. 解决思想: 首先,将三根柱子依次分为起始柱,辅助柱和目标柱.在移动过程中,这三个柱 ...

  7. 【小甲鱼Python】文件:因为懂你,所以永恒课后作业

    笔记 打开文件 使用open()来打开文件. 其中常用的是前两个参数. 参数file如果带路径则在路径中寻找文件,如果不带路径则在当前文件夹寻找文件. 写路径时,要么用/,要么用\\. 参数mode: ...

  8. c语言常数-ox6a是什么意思,c语言1-7章课后作业答案

    c语言1-7章课后作业答案 51intn=0:char*s:if(argc1)for(s=argv1:*s:s+)if(A=*s&*s=Z)|(a=*s&*s=z)n+:elsen=0 ...

  9. 慕课软件质量保证与测试(第五章.课后作业)

    慕课金陵科技学院.软件质量保证与测试.第五章.软件测试过程.课后作业 0 目录 5 软件测试过程 5.7 课后作业 5.7.1 课堂重点 5.7.2 测试与作业 6 下一章 0 目录 5 软件测试过程 ...

最新文章

  1. Apriltag可用图片:TAG16H5
  2. windows10 上运行 linux -- WSL(Windows Subsystem for Linux)
  3. overflow妙用--去除默认滚动条,内容仍可滚动
  4. 在你们看来,信息网络的定级如何才能更好的发展?或者说有什么影响因素使得定级工作不好开展?
  5. DDOS压力测试系统
  6. Amazon SQS 消息队列服务
  7. JQuery Mobile iscroll插件使用教程及注意事项
  8. VS2015调试无法加载PDB 文件
  9. 计算机网络系统工程监理,GB-T 19668.4-2007 信息化工程监理规范 第4部分:计算机网络系统工程监理规范.pdf...
  10. 助过网:一个月时间怎么科学有效复习公务员考试?
  11. 《Java程序设计》课程实验要求
  12. OBD(On-Board-Diagnose)
  13. 青岛大学计算机考研好考么,青岛大学考研难吗?一般要什么水平才可以进入?...
  14. 关于 SQL Server Reporting Services 匿名登录的解决方案
  15. 怎么正确有效学习计算机专业
  16. java.io.IOException: Prepare failed.: status=0x1
  17. PostgreSQL 源码解读(147)- Storage Manager#3(fsm_search函数)
  18. .NET经典图书推荐(下)
  19. 综述 词向量与分布式表示
  20. 一行代码教你伪装黑客

热门文章

  1. mysql删除数据太多卡死解决办法
  2. java设计模式之简单工厂模式
  3. 关于LayUI单选框渲染checked属性不生效的问题
  4. android程序运行无操作一段时间显示屏保
  5. dataTables分页组合查询 springMVC Hibernate
  6. Golang中WaitGroup、Context、goroutine定时器及超时学习笔记
  7. orcale的rank(排名函数)实例
  8. 安装ORACLE 11。2.0.3 配置GRID执行脚本信息记录
  9. 软文推荐:常用 Java 静态代码分析工具的分析与比较
  10. WS-Eventing、WS-Transfer Web服务标准