一.程序设计思想
1.输入一个字符串
2.将这个字符串解析为一个字符数组
3.对其字符串进行判定,如果不是A~Z中的字符(必须是大写),就终止程序,并且输出无法解析
4.输入加密的数字(就是往后移动的个数)
(1)特殊情况是向后移动导致没有26个字母中的任一个与其对应。所以要对其进行取余
5.将字符一个一个的加上加密的数值,就能完
二.程序流程图
三.源代码
1 /*程序设计思想: 2 * 1.输入一个字符串 3 * 2.将这个字符串解析为一个字符数组 4 * 3.输入加密的数字(就是往后移动的个数) 5 * (1)特殊情况是向后移动导致没有26个字母中的任一个与其对应。所以要对其进行取余 6 * 4.将字符一个一个的加上加密的数值,就能完成 7 * */ 8 package class6; 9 10 import java.util.Scanner; 11 12 import org.w3c.dom.css.CSSStyleSheet; 13 14 public class Encrypt { 15 16 17 public static void main(String[] args) 18 { 19 Scanner in = new Scanner(System.in); 20 21 //输入字符串 22 System.out.println("请输入一个字符串:"); 23 String str = in.next(); 24 25 //对字符串进行判定(如果是A~Z且都是大写则继续进行,如果不是则退出程序) 26 for(int i = 0;i<str.length();i++) 27 { 28 int character = str.charAt(i); 29 if(character<65||character>90) 30 { 31 System.err.println("无法解析!"); 32 System.exit(1); 33 } 34 } 35 36 37 //输入要进行加密的数字 38 System.out.println("请输入要进行加密的数字:"); 39 int move = in.nextInt(); 40 41 //对字符串进行移动,也就是加密 42 String contain1=""; 43 for(int i = 0;i<str.length();i++) 44 { 45 int temp = str.charAt(i)+move; 46 if(temp>90) 47 { 48 temp = temp%90+64; 49 } 50 char temp1 = (char)temp; 51 contain1 = contain1+temp1; 52 } 53 System.out.println("加密后的字符串是:"+contain1); 54 55 //反过来执行上述操作,也就是解密 56 String contain2=""; 57 for(int i = 0;i<contain1.length();i++) 58 { 59 int temp = contain1.charAt(i)-move; 60 if(temp<65) 61 { 62 temp = 90 - (64-temp); 63 } 64 char temp1 = (char)temp; 65 contain2 = contain2+temp1; 66 } 67 System.out.println("解密后的字符串是:"+contain2); 68 69 } 70 71 }
四.结果截图。