古罗马皇帝的子串加密

课后作业1:字串加密。

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

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

设计思想:

整体思想即为将用户输入的字符串变为字符数组,然后进行加密运算,将加密后的字符数组再变回字符串输出即可。

首先定义int变量length以后来取得用户输入字符串长度,定义string变量zifu取得用户输入字符串。然后用Scanner读取用户输入的字符串,接着读取字符串长度。用tochararray方法将字符串转为字符数组。然后根据a到w的字符每个向后加3,x,y,z这三个每个减去23得到变换后的字符。然后定义可以自由变换长度的stringbuffer类型arr,用append方法,接着定义string newstr用tostring方法将加密后的字符数组转换为字符串进行输出。

源代码:(这是加密代码)

package jiami;

//课后作业1:字串加密.每个字符都对应它以后的第三个字符,进行加密。  2015.10.25  底云飞

//65~90为26个大写英文字母,97~122号为26个小写英文字母

import java.util.Scanner;

public class Screat { 

privatestatic Scanner scan;  //私有静态Scanner类变量

public static void main(String[] args){

int length;  //用户输入的字符串长度

String zifu;  //用户输入的字符串

scan = new Scanner(System.in);  //给scan申请空间

System.out.println("请输入英文字符串:");

zifu = scan.nextLine();  //读取用户输入的字符串并赋值给zifu

System.out.println("你输入的字符串为:"+zifu);

length = zifu.length();  //得到用户输入字符串的长度

char array[] = zifu.toCharArray();  //将用户输入的字符串转化为字符数组

for(int i=0;i<length;i++)  //将每个字符进行变换

{    //a到w的字符每个向后加3,x,y,z这三个每个减去23得到变换后的

if((array[i]>=65&&array[i]<=87)||(array[i]>=97&&array[i]<=119))

array[i]=(char) (array[i]+3);

else if((array[i]>=88&&array[i]<=90)||(array[i]>=120&&array[i]<=122))

array[i]=(char) (array[i]-23);

}

StringBuffer arr = new StringBuffer();  //定义一个stringbuffer类的变量arr

for(int i=0;i<length;i++)

{

arr.append(array[i]);  //运用append方法,参考StringBufferAppend。java

}

String newstr = arr.toString();  //将变换后的重新组合为字符串

System.out.println("加密后的英文为:"+newstr);  //打印组合后的字符串

}

}

原文地址:https://www.cnblogs.com/diyunfei/p/4908544.html