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

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

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

很简单,就是每个字符原文往后面推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
='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
='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
='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 }

验证截图:

转载于:https://www.cnblogs.com/messi2017/p/7729839.html

你可能感兴趣的文章
iOS uuchart 用法
查看>>
c# 多线程 调用带参数函数
查看>>
JQuery 如何选择带有多个class的元素
查看>>
The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
查看>>
VS快速生成JSON数据格式对应的实体
查看>>
Word2vec 模型载入(tensorflow)
查看>>
Linux内核——定时器和时间管理
查看>>
RabbitMq消息序列化简述
查看>>
git忽略文件【转】
查看>>
Web上的支持的图片格式以及它们之间的区别
查看>>
jQuery监听文本框值改变触发事件(propertychange)
查看>>
HDU--2040
查看>>
甲骨文Java Archive
查看>>
查看数据库错误日志的位置
查看>>
电信网络拓扑图自动布局
查看>>
C#中List〈string〉和string[]数组之间的相互转换
查看>>
洛谷P1108 低价购买[DP | LIS方案数]
查看>>
通达信里的统计函数及区块背景函数
查看>>
redis主从配置<转>
查看>>
8 行 Node.js 代码实现代理服务器
查看>>