1.程序设计思想:

程序首先需要获取要加密的或者待解密字符串,然后通过算法进行字符错位,关键也是字符的错位,最后直接调用函数输出字符串。

2.程序流程图:

3.源程序:

import java.util.Scanner;  public class Caesarcipher {  public static void main(String[] args) {  System.out.print("请选择操作(1.加密、2.解密):");  Scanner sc = new Scanner(System.in);   int index = sc.nextInt();  if (1 == index) {  System.out.print("请输入字符串:");  String str = sc.next();  StringBuffer newStr = new StringBuffer();for (int i = 0; i < str.length(); i++) {  char c = str.charAt(i);  switch (c) {  case 'x':  newStr.append('a');  break;  case 'y':  newStr.append('b');  break;  case 'z':  newStr.append('c');  break;  default:  if (!(c >= 'a' && c <= 'w')) {newStr.append(c);  continue;  }  char newChar = (char) (c + 3);newStr.append(newChar);  }  }  System.out.println("加密后的字符串是:" + newStr.toString());  } else if (2 == index) { System.out.print("请输入字符串:");  String str = sc.next();  char[] arr = str.toCharArray();for (int i = 0; i < arr.length; i++) {  switch (arr[i]) {  case 'a':  arr[i] = 'x';  break;  case 'b':  arr[i] = 'y';  break;  case 'c':  arr[i] = 'z';  break;  default:  if (!(arr[i] >= 'd' && arr[i] <= 'z')) {continue;  }  arr[i] -= 3;  }  }  System.out.print("解密后的字符串是:");  for (int i = 0; i < arr.length; i++) {  System.out.print(arr[i]);  }  } else {  System.out.println("输入错误,请输入1或2");  }  sc.close();  }
}

4.程序结果截图;

转载于:https://www.cnblogs.com/cj-125/p/7744109.html

04-课后作业1-字符串加密相关推荐

  1. 课后作业之字符串加密

    一:程序设计思想: 该程序开始先输出菜单提示用户输入选项进行操作是要加密还是要解密,通过校验后进行相应操作,加密字符串时先输入要加密的字符串,然后用字符串的toCharArray()方法将字符串转化为 ...

  2. matlab用lism求零输入响应,信号与系统matlab课后作业_北京交通大学讲解.docx

    信号与系统matlab课后作业_北京交通大学讲解.docx 信号与系统MATLAB平时作业 学院 电子信息工程学院 班级 姓名 学号 教师 钱满义 MATLAB习题 M3-1 一个连续时间LTI系统满 ...

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

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

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

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

  5. day 13 课后作业

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

  6. CSAPP 第3章 机器级编程课后作业

    第3章 程序的机器级表示课后作业 3.58 一个函数的原型为: long decode2(long x, long y, long z); GCC 产生如下汇编代码: # long decode2(l ...

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

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

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

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

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

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

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

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

最新文章

  1. SQL Server的数据库连接的极限在哪儿?
  2. linux memcached php 整合
  3. python读取.so_Python入门-编译安装Python3教程
  4. java 自定义监听_Spring 中的自定义事件
  5. Java中有关clone方法的用法
  6. 《Linux内核设计与实现》读书笔记(五)- 系统调用
  7. matlab向量的角标,【MATLAB】利用冒号表达式获得子矩阵
  8. 趣谈程序员真香定律:源码即设计
  9. UVA - 10340 ​​​​​​​All in All
  10. webpack打包压缩混淆_细说webpack系列 3. webpack-cli 零配置打包
  11. ubuntu2004 安装protoc
  12. 富士通Fujitsu DPK1786T 打印机驱动
  13. SQL SERVER 2000用户sa 登录失败的解决办法
  14. SA方法分析-图书管理系统
  15. 洛谷P1067-多项式输出(模拟好题!)
  16. android制作类似支付圆圈和打钩界面ProgressWheel
  17. 使用Python下载酷狗音乐
  18. kali系统破解WiFi密码(二)
  19. 修改ubuntu桌面路径
  20. Java UT用例实践记录

热门文章

  1. android往天气接口里面传城市,Android使用中国天气网API数据通过城市名称获取天气情况...
  2. 数组|leetcode59.螺旋矩阵II
  3. hadoop伪分布式配置修改配置文件的时候无法保存(没有权限保存)
  4. 路径总和Python解法
  5. springboot使用imageio返回图片_SpringBoot 二维码生成(复制即用)
  6. 事件总线第一次点击_用户体验研究指南3-3第一次点击测试
  7. oracle自动把SID给改了,Oracle SID修改方式的详解
  8. spring java配置_Spring基于java的配置
  9. php chmod 777 chown,linux命令中chown与chmod的区别
  10. php后端如何搭建socket服务,从php做一个简单的socket服务器流程