博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
课后作业:字串加密
阅读量:7078 次
发布时间:2019-06-28

本文共 1779 字,大约阅读时间需要 5 分钟。

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

你可能感兴趣的文章
java反射
查看>>
Heap(堆结构/优先队列)-Swift实现
查看>>
Android消息机制Handler
查看>>
LeetcodeT832 记录
查看>>
有赞业务对账平台的探索与实践
查看>>
【Java基本功】一文读懂String及其包装类的实现原理
查看>>
leetcode讲解--824. Goat Latin
查看>>
深入解析Node.js中的Async和Await函数
查看>>
Ubuntu 下如何安装与卸载软件 ( 一 :GUI版)
查看>>
07_01_定义加载器(Webpack Book)
查看>>
Let's encrypt 通配域名DNS验证方式的证书自动更新
查看>>
PHP 框架学习(二):Laravel
查看>>
总结常见的违背Rest原则的接口设计做法
查看>>
JAVASCRIPT中THIS指的是什么?
查看>>
推荐一个全新的简单可扩展的基于MVC模式开发的PHP CMS系统:metacms
查看>>
基于 Laravel 的模块化开发框架
查看>>
将Medium中的博客导出成markdown
查看>>
D-Bus Tutorial
查看>>
Spring中的事务控制
查看>>
Promise的简单实现
查看>>