1.设计思想:首先判断是要加密还是解密,然后再进行字符串的通过ASCLL码表值的加减来完成加密或者解密。
2.程序流程图:
3.源代码:
1 package Luomamima; 2 import java.util.Scanner; 3 public class Test 4 { 5 private static Scanner scan; 6 public static void main(String[] args) 7 { 8 Scanner scanner=new Scanner(System.in); 9 int length; //用户输入的字符串长度 10 String s; 11 scan = new Scanner(System.in); 12 System.out.println("请选择你要进行的操作:"); 13 System.out.println("1.加密字符串"); 14 System.out.println("2.解密字符串"); 15 int a=scanner.nextInt(); 16 System.out.println("请输入要加密或解密的字符串:"); 17 s = scan.nextLine(); //读取用户输入的字符串并赋值给s 18 System.out.println("你输入的字符串为:"+s ); 19 length = s .length(); //得到用户输入字符串的长度 20 char array[] = s .toCharArray(); //将用户输入的字符串转化为字符数组 21 if(a==1)//加密 22 { for(int i=0;i<length;i++) //将每个字符进行变换 23 { 24 if((array[i]>=65&&array[i]<=87)) 25 array[i]=(char) (array[i]+3); 26 else if((array[i]>=88&&array[i]<=90)) 27 array[i]=(char) (array[i]-23); 28 } 29 StringBuffer arr = new StringBuffer(); //定义一个stringbuffer类的变量arr 30 for(int i=0;i<length;i++) 31 { 32 arr.append(array[i]); //运用append方法,参考StringBufferAppend。java 33 } 34 String newstr = arr.toString(); //将变换后的重新组合为字符串 35 System.out.println("加密后字符串为:"+newstr); //打印组合后的字符串 36 } 37 if(a==2)//解密 38 { 39 for(int i=0;i<length;i++) //将每个字符进行变换 40 { 41 if((array[i]>=68&&array[i]<=90)) 42 array[i]=(char) (array[i]-3); 43 else if((array[i]>=65&&array[i]<=67)) 44 array[i]=(char) (array[i]+23); 45 } 46 StringBuffer arr = new StringBuffer(); //定义一个stringbuffer类的变量arr 47 for(int i=0;i<length;i++) 48 { 49 arr.append(array[i]); //运用append方法 50 } 51 String newstr = arr.toString(); //将变换后的重新组合为字符串 52 System.out.println("解密后的字符串为:"+newstr); //打印组合后的字符串 53 } 54 55 } 56 }
4.结果截图:
加密:
解密: