古羅馬皇帝凱撒在打仗時曾經使用過以下方法加密軍事情報:

請編寫一個程序,使用上述算法加密或解密用戶輸入的英文字串要求設計思想、程序流程圖、源代碼、結果截圖。
【設計思想】
先定義字符串,之后輸入字符串,算出字符串的長度(str。Length),用for循環進行字符串的加密,運用ASCLL碼表,進行加密,如果是xyz就減23,XYZ同理,其余的就正常加3,最后將加密的字符加到一個空的String類型的成員上。
解密只需要將加密的方法反過來用
【程序流程圖】

package homework4;
import java.util.Scanner;
class Fuction{
public void jiami(){
Scanner input=new Scanner(System.in);
System.out.println("請輸入要加密的字符串:");
String str=input.nextLine();
char[]chs=str.toCharArray();
char temp=0;
String str1="";
for(int i=0;i<chs.length;i++)
{
if((str.charAt(i) > 64 && str.charAt(i) < 88)||(str.charAt(i) > 96 && str.charAt(i) < 120))
temp=(char) (str.charAt(i) + 3);
else if((str.charAt(i) > 87 && str.charAt(i) < 91)||(str.charAt(i) > 119 && str.charAt(i) < 123))
temp=(char) (str.charAt(i) - 23);
str1+=temp;
}
System.out.println("加密后的字串是:\n"+str1);
}
public void jiemi(){
Scanner input=new Scanner(System.in);
System.out.println("請輸入要解密的字符串:");
String str=input.nextLine();
char[]chs=str.toCharArray();
char temp=0;
String str1="";
for(int i=0;i<chs.length;i++)
{
if((str.charAt(i) > 67 && str.charAt(i) < 91)||(str.charAt(i) > 99&& str.charAt(i) < 123))
temp=(char) (str.charAt(i) - 3);
else if((str.charAt(i) > 54 && str.charAt(i) < 68)||(str.charAt(i) > 96 && str.charAt(i) < 100))
temp=(char) (str.charAt(i) + 23);
str1+=temp;
}
System.out.println("解密后的字串是:\n"+str1);
}
}
public class Test {
public static void main(String[] args) {
// TODO 自動生成的方法存根
Fuction m=new Fuction();
System.out.println("選擇你需要的功能:");
System.out.println("1:加密字符串");
System.out.println("2:解密字符串:");
Scanner scanner=new Scanner(System.in);
int c=scanner.nextInt();
switch(c)
{
case 1:m.jiami();break;
case 2:m.jiemi();break;
}
} }





