课后作业:字符串加密

Posted messi2017

tags:

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

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

很简单,就是每个字符原文往后面推3个字符就是对应密码

程序设计思想:编写一个类,在主线程中调用这个类的静态方法,这两个静态方法接受字符串,一个翻译原文,另一个翻译密码。具体实现非常简单,利用循环对字符串中每个字符作+3的操作(这里需要用到强制类型转换,对于字母表结尾的xyz和开头的abc分别在转为密码和转为原文中特殊处理,即a---x,b---y,c---z),同时把这些字符加到一个准备输出的空字符串的后面

程序流程图:

程序源代码:

 1 import java.util.Scanner;
 2 
 3 public class Test3 {
 4     public static void main(String[]args) {
 5          Scanner s = new Scanner(System.in);
 6          System.out.print("输入一串原始字符串:");
 7          String str = s.next();
 8          System.out.println("对应密码为:"+Psw.lock(str));
 9          System.out.print("输入一串密码字符串:");
10          str = s.next();
11          System.out.println("对应原文为:"+Psw.unlock(str));
12          s.close();
13     }
14 }
15 
16 class Psw{
17     private String original = "";
18     private String psw = "";
19     public Psw(String original) {
20         this.original = original;
21     }
22     public void lock() {
23         int len = original.length();
24         for(int i = 0;i<len;++i) {
25             if(original.charAt(i)>=\'a\'&&original.charAt(i)<=\'w\')
26                 psw+=(char)(original.charAt(i)+3);
27             else if(original.charAt(i)==\'x\')psw+=\'a\';
28             else if(original.charAt(i)==\'y\')psw+=\'b\';
29             else if(original.charAt(i)==\'z\')psw+=\'c\';
30             else if(original.charAt(i)>=\'A\'&&original.charAt(i)<=\'W\')psw+=(char)(original.charAt(i)+3);
31             else if(original.charAt(i)==\'X\')psw+=\'A\';
32             else if(original.charAt(i)==\'Y\')psw+=\'B\';
33             else if(original.charAt(i)==\'Z\')psw+=\'C\';
34             else {
35                 System.out.println("有异常字符,直接退出");
36                 break;
37             }
38         }
39     }
40     public String getPsw() {
41         return psw;
42     }
43     public static String lock(String str) {
44         String str1 = "";
45         int len = str.length();
46         for(int i = 0;i<len;++i) {
47             if(str.charAt(i)>=\'a\'&&str.charAt(i)<=\'w\')
48                 str1+=(char)(str.charAt(i)+3);
49             else if(str.charAt(i)==\'x\')str1+=\'a\';
50             else if(str.charAt(i)==\'y\')str1+=\'b\';
51             else if(str.charAt(i)==\'z\')str1+=\'c\';
52             else if(str.charAt(i)>=\'A\'&&str.charAt(i)<=\'W\')str1+=(char)(str.charAt(i)+3);
53             else if(str.charAt(i)==\'X\')str1+=\'A\';
54             else if(str.charAt(i)==\'Y\')str1+=\'B\';
55             else if(str.charAt(i)==\'Z\')str1+=\'C\';
56             else {
57                 System.out.println("有异常字符,直接退出");
58                 break;
59             }
60         }
61         return str1;
62     }
63     public static String unlock(String str) {
64         String str1 = "";
65         int len = str.length();
66         for(int i = 0;i<len;++i) {
67             if(str.charAt(i)>=\'d\'&&str.charAt(i)<=\'z\')
68                 str1+=(char)(str.charAt(i)-3);
69             else if(str.charAt(i)==\'a\')str1+=\'x\';
70             else if(str.charAt(i)==\'b\')str1+=\'y\';
71             else if(str.charAt(i)==\'c\')str1+=\'z\';
72             else if(str.charAt(i)>=\'D\'&&str.charAt(i)<=\'Z\')str1+=(char)(str.charAt(i)-3);
73             else if(str.charAt(i)==\'A\')str1+=\'X\';
74             else if(str.charAt(i)==\'B\')str1+=\'Y\';
75             else if(str.charAt(i)==\'C\')str1+=\'Z\';
76             else {
77                 System.out.println("有异常字符,直接退出");
78                 break;
79             }
80         }
81         return str1;
82     }
83 }

验证截图:

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

课后作业---字符串

第四讲String课后作业

第四次课后作业及Sring类型的应用

04-课后作业

04-String——课后作业1:字串加密

String课后作业