当前位置: 首页 > news >正文

课后作业:字串加密

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.结果截图


 

转载于:https://www.cnblogs.com/-wyd/p/7742844.html

相关文章:

  • 还没升级 iOS11?这个高危漏洞威胁近9成 iPhone 用户!
  • e租宝雇佣黑客攻击网贷之家 帮凶被判二年六个月
  • java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader)
  • 云计算大数据(Hadoop)开发工程师项目实战视频教程(九部分)
  • MySQL设置UTF8字符
  • Web大前端环境搭建
  • Java并发学习之ReentrantLock的工作原理及使用姿势
  • Jedis cluster集群初始化源码剖析
  • Locust no-web 模式与参数详解
  • 我所理解的Remoting (2) :远程对象的生命周期管理[下篇]
  • windows 10、8.1、7 用户自动登陆,避免输入密码登陆的注册表项:
  • 北京航空航天大学王田苗教授:人工智能与机器人前沿科技发展与投资布局
  • YYHS-猜数字(并查集/线段树维护)
  • Linux链接文件
  • js跳出循环
  • [译]前端离线指南(上)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • JAVA多线程机制解析-volatilesynchronized
  • jquery ajax学习笔记
  • Koa2 之文件上传下载
  • React的组件模式
  • sessionStorage和localStorage
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初探 Vue 生命周期和钩子函数
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 计算机在识别图像时“看到”了什么?
  • 记录:CentOS7.2配置LNMP环境记录
  • 讲清楚之javascript作用域
  • 排序(1):冒泡排序
  • 学习使用ExpressJS 4.0中的新Router
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 白色的风信子
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • #vue3 实现前端下载excel文件模板功能
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Git) gitignore基础使用
  • (pojstep1.3.1)1017(构造法模拟)
  • (zt)最盛行的警世狂言(爆笑)
  • (七)Java对象在Hibernate持久化层的状态
  • (一)基于IDEA的JAVA基础10
  • (转)http协议
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core 版本不支持的问题
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET委托:一个关于C#的睡前故事
  • @Import注解详解
  • @Pointcut 使用
  • @SpringBootApplication 包含的三个注解及其含义
  • [Android]How to use FFmpeg to decode Android f...
  • [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
  • [Excel] vlookup函数
  • [hdu 1711] Number Sequence [kmp]