题目:请编写一个程序,加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

程序设计思想:首先由用户选择是加密还是解密,利用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:字串加密的更多相关文章

  1. String课后作业

    请查看String.equals()方法的实现代码,注意学习其实现方法. public class StringEquals { @param args the command line argume ...

  2. java字串加密

    字串加密 1.设计思想: (1)加密方法,字符串的每一个字符都代表这个字符往后的第三位,最后三个字符代表,开始的三个字符. (2)解密方法,字符串的每一个字符都代表这个字符往前的第三位,开始三个字符代 ...

  3. java课后作业

    课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...

  4. Java字符串课后作业

    [实验任务] 1.实验题目:字串加密 2.实验内容:古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:

  5. Java理论学时第四节。课后作业。

    请查看String.equals()方法的实现代码,注意学习其实现方法. public class StringEquals { public static void main(String[] ar ...

  6. Oracle的字串處理

    Oracle的字串處理 除了寫程式之外,資料庫的應用也是蠻重要的,而SQL語法,用法大致相同,但各公司所出的資料庫還是有所差別,而ORACLE SQL給了相當多的函數應用,下面列了一些函法的名稱和用法 ...

  7. String字符串类课后作业

    String动手动脑和课后作业 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 结果: 总结:在Java中,内容相同的字串常量(&quo ...

  8. 【转】Encrypt ConnectionString in Web.Config 【加密ASP.NET web.config数据库链接字串】

    原文链接:https://www.codeproject.com/Tips/795135/Encrypt-ConnectionString-in-Web-Config web.config中一般会存放 ...

  9. [FAQ]String(字串相連)與StringBuilder的差別、原理與優缺點?

    原文位於 http://www.dotblogs.com.tw/mis2000lab/archive/2013/09/09/msdn_string_stringbuilder.aspx [FAQ]St ...

随机推荐

  1. 跳蚤[BZOJ4310](后缀数组+二分答案传判定)

    不知道后缀数组的请退回去! 题面: 题目描述 很久很久以前,森林里住着一群跳蚤.一天,跳蚤国王得到了一个神秘的字符串,它想进行研究.首先,他会把串分成不超过 k 个子串,然后对于每个子串 S,他会从S ...

  2. docker for windows 容器内网通过独立IP直接访问的方法

    Docker官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用.一般过程是: 1.Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器 ...

  3. C# 篇基础知识4——.NET的基础概念

    C#语言是与微软的.NET框架紧密地联系在一起的,而.NET框架是微软.NET战略的核心,为了更好的理解C#语言,我们必须了解一些.NET框架的基本知识..NET框架是为开发应用程序推出的一个编程平台 ...

  4. js求两个整数的百分比

    function GetPercent(num, total) {                          num = parseFloat(num);                   ...

  5. $.ajax方法提交数组参数

    springmvc框架 var param = new Object(); var arr = new Array(); arr.push(1,2,3); param.ids=JSON.stringi ...

  6. 使用JS写一个计算器

    先上效果图: 简单的加减乘除功能还是有的,所以我们就考虑怎么来实现这个功能. 根据预期效果,可以确定页面中的布局要用到table tr td. 所以先放上页面布局,table的边框宽度border,c ...

  7. 二叉树 - DFS与BFS

    二叉树 - DFS与BFS ​ 深度优先遍历 (DFS Depth First Search) 就是一个节点不到头(叶子节点为空) 不回头 ​ 广度有点遍历(BFS Breadth First Sea ...

  8. Sqlserver自动备份bat

    1.bat文件 @echo off echo 删除30天前的备分文件和日志 forfiles /p /c "cmd /c del @path" \Tools\Binn echo 数 ...

  9. MongoDB_01

    解释:MongoDB可应对 --三高需求 High performance-对数据库高并发读写的需求 Huge Storage -对海量数据的高效率存储和访问的需求 High Scalability ...

  10. decodeURIComponent 测试

    var test1="http://www.wljcz.com/My first/"; var nn=encodeURI(test1); var now=decodeURI(tes ...