• 字串加密


                                       字串加密

      1.问题提出:

        古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:

                

      1. 解决方法:

         1.设计思想

      方法1. 读入一行字符串,赋给str,利用string.charAt()函数依次取出str所存的字符,若是该字符在a-uA-U间,将该字符加3赋给字符temp,或者该字符在v-zV-Z间,将该字符减23赋给temp,将tempstr1连接起来赋给str1。重复该操作,直到结束循环。str1即是加密后的字符串。

      方法2. 读入一行字符串,赋给s,利用String.toCharArray()s转化为字符数组a[],再通过循环取出每个字符,判断若是该字符在a-uA-U间,将该字符加3赋给int数组d[i],或者该字符在v-zV-Z间,将该字符减23的值赋给d[i],再将d[i]转为对应的字符temp,将tempstr连接起来赋给str。重复该操作,直到结束循环。

    综上以上两方法实质相同。

           2.程序流程图

                                                     

                                          

                                            

                                               

                                                   

                                                          

          3.源代码

         方法一

      

     1 package String;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Secret {
     6     public static void main(String[] args) {
     7         Scanner in=new Scanner (System.in);
     8         System.out.println("输入初始字符串:");
     9         String str1="";
    10         int n=0;
    11         String str=in.nextLine();
    12         n=str.length();
    13         char temp=0;
    14         for(int i=0;i<n;i++)
    15         {
    16             if(str.charAt(i)>64&&str.charAt(i)<88||str.charAt(i)>96&&str.charAt(i)<120)
    17                 temp=(char)(str.charAt(i)+3);
    18             else if(str.charAt(i)>87&&str.charAt(i)<91||str.charAt(i)>119&&str.charAt(i)<123)
    19                 temp=(char)(str.charAt(i)-23);
    20             else
    21                 temp=(char)str.charAt(i);
    22             str1+=temp;
    23         }
    24         System.out.println("加密后的字符串
    "+str1);
    25 }
    26 }

         方法二

     1 package String;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Secret {
     6     public static void main(String[] args) {
     7         Scanner in=new Scanner (System.in);
     8         System.out.println("输入初始字符串:");
     9         String str="";
    10         char temp=0;
    11         String s=in.nextLine();
    12         int d[]=new int[s.length()];
    13         char a[]=s.toCharArray();
    14         for(int i=0;i<s.length();i++)
    15         {
    16             if(a[i]>='A'&&a[i]<='U'||a[i]>='a'&&a[i]<='u')
    17             { d[i]=a[i]+3; }
    18             else if((a[i]>='V'&&a[i]<='Z')||(a[i]>='v'&&a[i]<='z'))
    19             {
    20                 d[i]=a[i]-23;
    21             }    
    22             else
    23                 d[i]=a[i];
    24             temp=(char)d[i];
    25             str+=temp;    
    26         }
    27          System.out.println("加密后的字符串:
    "+str);
    28     }
    29 
    30 }

         4.结果截图

        

             

  • 相关阅读:
    根据自己的博客数据统计国内IT人群
    使用dropwizard(5)--加入swagger
    使用dropwizard(4)-加入测试-jacoco代码覆盖率
    使用dropwizard(3)-加入DI-dagger2
    收藏博客
    IntelliJ IDEA 下载安装(含注册码)
    fontawesome图标字体库组件在服务器上显示不出来图标的解决
    MySQL DBA工作角色和职责介绍
    MySQL主主复制(双主复制)配置过程介绍
    MySQL表与表之间的SQL Joins图介绍
  • 原文地址:https://www.cnblogs.com/zhao-teng-ass/p/7739819.html
Copyright © 2020-2023  润新知