字串加密

Posted s硕s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字串加密相关的知识,希望对你有一定的参考价值。

                                   字串加密

  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("加密后的字符串\\n"+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("加密后的字符串:\\n"+str);
28     }
29 
30 }

     4.结果截图

    

         

 

以上是关于字串加密的主要内容,如果未能解决你的问题,请参考以下文章

字串加密

java字串加密及String的各类函数说明

字串加密

字串加密

课后作业之字串加密动手动脑

课后作业之字串加密