实验:字符加密
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
使得ascll加3,XYZ对应ABC
请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图
(一)
(一)设计思路
建立类Enoughcrty
(1) 首先输入一个字符串
System.out.println("请输入一个需要加密的字符串:");
输入字符串Scanner scan =new Scanner(System.in);
(2) 返回键盘输入的数据并以String类型返回
String input=scan.next();
(3)/将返回值由字符串变为char[]数组型
char[] inputArr =input.toCharArray();
(4)/构造一个没有没有字符的StringBuffer类
StringBuffer sb=new StringBuffer();
(5)加密
(a)进行for循环,inputArr.length表示字符串转化为数组的长度for(int i=0;i<inputArr.length;i++){
(b)赋值charInt为数组数值
int charInt=Integer.valueOf(inputArr[i]);
int charEn;
(c)判断输入值是否为XYZ,并进行加密,例如X时候
if(charInt==88)
int charIntEn=65;
将加密后的数组成员复制到空数组中
sb.append((char)(charIntEn));
(d)其他
else{
int charIntEn=charInt+3;
sb.append((char)(charIntEn));
(e)输出
System.out.println(sb.toString());
(二
package jiami; import java.util.Scanner; public class Encrty { public static void main(String[]args){ //首先输入一个字符串 System.out.println("请输入一个需要加密的字符串:"); Scanner scan =new Scanner(System.in);//输入字符串 String input=scan.next();//返回键盘输入的数据并以String 类型返回 char[] inputArr =input.toCharArray(); //将返回值由字符串变为char[]数组型 StringBuffer sb=new StringBuffer(); //构造一个没有没有字符的StringBuffer类 //进行加密 for(int i=0;i<inputArr.length;i++){ int charInt=Integer.valueOf(inputArr[i]); int charEn; if(charInt==88){ int charIntEn=65; sb.append((char)(charIntEn));//填入空余字符串中 } else if(charInt==89){ int charIntEn=66; sb.append((char)(charIntEn)); } else if(charInt==90){ int charIntEn=67; sb.append((char)(charIntEn)); } //对应XYZ表示ABC else{ int charIntEn=charInt+3; sb.append((char)(charIntEn)); } } System.out.println(sb.toString()); } }
)
(三)实验截图
(四)流程图