zoukankan      html  css  js  c++  java
  • 古罗马凯撒皇帝加密军事情报之字符串加密解密

    题目介绍:

    设计思想 :

    (1)加密:首先先定义字符串,之后用户输入字符串,运用length函数算出字符串的长度,运用for循环逐步取字符,运用ASCLL码表,进行加密,如果是xyz就减23,XYZ同理,其余的就正常加3,最后将加密的字符加到一个空的String类型的成员上,最后输出结果即为加密后的字符串;

    (2)解密:同上,首先定义字符串,用户输入,运用length函数算出字符串的长度,运用for循环逐步取字符,运用ASCLL码表,进行加密,如果是abc就加23,ABC同理,其余的就正常减3,最后将解密的字符加到一个空的String类型的成员上,最后输出结果即为解密后的字符串;

    程序源码:

    //古罗马加密
    import java.util.*;
    public class Four{
    public static void main( String args[] )
    {
    String str1,str2;
    Scanner reader=new Scanner(System.in);
    System.out.println("输入待加密英文密码:");
    str1=reader.next();//输入
    char[] arrey=new char[100];
    str1.getChars(0,str1.length(),arrey,0);//加字符串赋值到数组里面,进行数组字符的判断
    System.out.println("加密后是:");
    for(int i=0;i<str1.length();i++)
    {
    if((str1.charAt(i)>=65&&str1.charAt(i)<=87)||(str1.charAt(i)>=97&&str1.charAt(i)<=119))//属于a-w和A-W直接+3
    arrey[i]=(char)(arrey[i]+3);
    else
    arrey[i]=(char)(arrey[i]-23);//xyz和XYZ
    System.out.print(arrey[i]);
    }

    //区分解密和加密 不要单纯的加减 两者并不是反过来的 注意abc和xyz
    System.out.println(" 输入待加密英文密码:");
    str2=reader.next();
    char[] arr=new char[100];
    str2.getChars(0,str2.length(),arr,0);//同上
    System.out.println("解密后是:");
    for(int i=0;i<str2.length();i++)
    {//注意下面的运算 abc三个是由xyz三者-23得来的 所以abc应+23返回到xyz 其余的数都是+3得来直接减去即可
    if((str2.charAt(i)>=68&&str2.charAt(i)<=90)||(str2.charAt(i)>=100&&str2.charAt(i)<=122))
    arr[i]=(char)(arr[i]-3);
    else
    arr[i]=(char)(arr[i]+23);
    System.out.print(arr[i]);//输出
    }
    reader.close();
    }

    }

    运行结果截图:

    程序流程图:

    加密:

    解密:

  • 相关阅读:
    导航控制器的出栈
    UIPickView的基本使用
    多控制器
    通过Xib加载控制器的View
    从StoryBoard加载控制器
    模仿UIApplication单例
    LaunchScreen原理
    UIWindow
    指定初始化的运用
    零长度数组在内核中的运用
  • 原文地址:https://www.cnblogs.com/mm20/p/7726563.html
Copyright © 2011-2022 走看看