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 ...
随机推荐
- 软件环境常识 --dev sit uat
DEV环境:DEV顾名思义就是develop,即代码开发的环境. SIT环境:System Integration Test系统集成测试,开发人员自己测试流程是否走通. UAT环境:User Acce ...
- iOS 安全地在主线程执行一个Block
//主线程同步队列 #define dispatch_main_sync_safe(block)\ if ([NSThread isMainThread]) {\ block();\ } else { ...
- R Akaike information criterion,AIC,一个越小越好的指标
Akaike information criterion,AIC是什么?一个用来筛选模型的指标.AIC越小模型越好,通常选择AIC最小的模型.第一句话好记,第二句话就呵呵了,小编有时候就会迷惑AIC越 ...
- uboot如何启动内核
2.7.1.uboot和内核到底是什么 2.7.1.1.uboot是一个裸机程序 (1)uboot的本质就是一个复杂点的裸机程序.和我们在ARM裸机全集中学习的每一个裸机程序并没有本质区别. 2.7. ...
- Ruoyi的确不错,不知后续能否坚持 允许商用
对于一个开源项目,作者的确很优秀: 在我们现在这个环境,能把一个开源项目做到这个规模,相当不容易:给作者点赞: 不过我也心里嘀咕,不知道后面哪天这个哥们突然发声明,不允许商用呢? 先偷偷留个证据,省的 ...
- 021、MySQL变量的使用,在MySQL中创建存储过程,并添加变量
#编写一个存储过程 CREATE PROCEDURE ShowDate ( ) BEGIN #变量定义 ); #变量赋值 set m_str1 = '曾经沧海难为水'; #输出当前时间 SELECT ...
- 六、Vue-Router:基础路由处理、路由提取成单独文件、路由嵌套、路由传参数、路由高亮、html5的history使用
一.vue-router的安装 官网文档 [官网]:https://cn.vuejs.org/v2/guide/routing.html [router文档]:https://router.vuejs ...
- B - Stacks of Flapjacks UVA - 120
BackgroundStacks and Queues are often considered the bread and butter of data structures and find us ...
- [BJDCTF2020]Cookie is so stable
0x00 知识点 Twig模板注入 链接: https://www.k0rz3n.com/2018/11/12/%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0%E5%B8%A ...
- HDU - 6205 card card card (尺取法)
题意:有n堆牌,ai表示每堆牌的牌数,bi表示每堆牌的penaltyvalue,操作开始前,可以重复进行将第一堆牌挪到最后一堆这一操作.然后,对于挪完后的牌,从第一堆开始,依次取.对于每一堆牌,首先将 ...