标签:rgs .com 技术分享 加密 iam next 代码 需要 i++
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。
【设计思想】
先定义字符串,之后输入字符串,算出字符串的长度(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; } } }
标签:rgs .com 技术分享 加密 iam next 代码 需要 i++
原文地址:http://www.cnblogs.com/sin30/p/7739254.html