04-String——课后作业1:字串加密
题目:请编写一个程序,加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。
程序设计思想:首先由用户选择是加密还是解密,利用String类中的charAt函数依次取出字串中的字符,如果加密(解密)就把取出的字符利用强制转换转换成int型之后如果是XYZ(ABC)就减(加)23其他的加(减)3然后再转换成char类型,然后定义一个char类型数组用来储存转换之后的字符。
程序流程图:这里只写了破解时的流程图,加密时基本一样。
程序源代码:
import java.util.Scanner; public class SwitchPassword { Scanner input = new Scanner(System.in); //加密字串
public void encrypt() { System.out.print("请输入要加密的字串:"); String str = input.next(); char encryptstr[] = new char[str.length()]; for(int i = 0;i < str.length();i ++) { if(str.charAt(i) == 'X' || str.charAt(i) == 'Y' || str.charAt(i) == 'Z') { encryptstr[i] = (char)((int)str.charAt(i) - 23); } else encryptstr[i] = (char)((int)str.charAt(i) + 3); } System.out.print("加密之后的字串为:"); for(int i = 0;i < str.length();i ++) { System.out.print(encryptstr[i]); } } //破解字串
public void crack() { System.out.print("请输入要破解的字串:"); String str = input.next(); char crackstr[] = new char[str.length()]; for(int i = 0;i < str.length();i ++) { if(str.charAt(i) == 'A' || str.charAt(i) == 'B' || str.charAt(i) == 'C') { crackstr[i] = (char)((int)str.charAt(i) + 23); } else crackstr[i] = (char)((int)str.charAt(i) - 3); } System.out.print("破解之后的字串为:"); for(int i = 0;i < str.length();i ++) { System.out.print(crackstr[i]); } } public static void main(String[] args) { Scanner input = new Scanner(System.in); SwitchPassword s = new SwitchPassword(); System.out.println("请选择: 1.加密 \t2.破解"); int ch = input.nextInt(); switch(ch) { case 1: s.encrypt();break; case 2: s.crack();break; } } }
程序运行结果:
04-String——课后作业1:字串加密的更多相关文章
- String课后作业
请查看String.equals()方法的实现代码,注意学习其实现方法. public class StringEquals { @param args the command line argume ...
- java字串加密
字串加密 1.设计思想: (1)加密方法,字符串的每一个字符都代表这个字符往后的第三位,最后三个字符代表,开始的三个字符. (2)解密方法,字符串的每一个字符都代表这个字符往前的第三位,开始三个字符代 ...
- java课后作业
课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...
- Java字符串课后作业
[实验任务] 1.实验题目:字串加密 2.实验内容:古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
- Java理论学时第四节。课后作业。
请查看String.equals()方法的实现代码,注意学习其实现方法. public class StringEquals { public static void main(String[] ar ...
- Oracle的字串處理
Oracle的字串處理 除了寫程式之外,資料庫的應用也是蠻重要的,而SQL語法,用法大致相同,但各公司所出的資料庫還是有所差別,而ORACLE SQL給了相當多的函數應用,下面列了一些函法的名稱和用法 ...
- String字符串类课后作业
String动手动脑和课后作业 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 结果: 总结:在Java中,内容相同的字串常量(&quo ...
- 【转】Encrypt ConnectionString in Web.Config 【加密ASP.NET web.config数据库链接字串】
原文链接:https://www.codeproject.com/Tips/795135/Encrypt-ConnectionString-in-Web-Config web.config中一般会存放 ...
- [FAQ]String(字串相連)與StringBuilder的差別、原理與優缺點?
原文位於 http://www.dotblogs.com.tw/mis2000lab/archive/2013/09/09/msdn_string_stringbuilder.aspx [FAQ]St ...
随机推荐
- 谈一下你对uWSGI和 nginx的理解(原理)
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分. WSGI是一种通信协议. uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信. uWS ...
- 织梦 dede runphp=yes SQL语句操作
个人实例dede:channelartlist 下循环出 channel 栏目 中的 文章 {dede:sql sql='select * from dede_arctype where reid = ...
- greenplum 存储过程 索引信息
涉及的索引表 参考:http://blog.nbhao.org/1539.html pg_index pg_indexes pg_stat_all_indexes # 记录当前数据库中所有的索引的使用 ...
- 回收 PV【转】
当 PV 不再需要时,可通过删除 PVC 回收. 当 PVC mypvc1 被删除后,我们发现 Kubernetes 启动了一个新 Pod recycler-for-mypv1,这个 Pod 的作用就 ...
- 用JS写一个网站树形菜单
先上效果图: 主体内容就是侧边展示的一二三级菜单,树形结构的. 前端页面布局内容,页面内容简单用ul li 来完成所有的罗列项.用先后顺序来区分一级二级三级: <body> <b&g ...
- 139. Word Break 以及 140.Word Break II
139. Word Break Given a non-empty string s and a dictionary wordDict containing a list of non-empty ...
- Vue父组件向子组件传值
父组件向子组件传值 组件实例定义方式,注意:一定要使用props属性来定义父组件传递过来的数据 <script> // 创建 Vue 实例,得到 ViewModel var vm = ne ...
- mysql 分组查询入门
- Spring容器的创建原理
1.new ioc容器(AnnotationConfigApplicationContext 注解ioc) 2.refresh()方法调用 2.1 prepareRefresh()刷新前的预处理 a: ...
- 数据结构——KMP(串)
KMP一个非常经典的字符串模式匹配算法,虽然网上有很多kmp算法的博客,但是为了更好的理解kmp我还是自己写了一遍(这个kmp的字符串存储是基于堆的(heap),和老师说的定长存储略有不同,字符串索引 ...