字串加密

一.程序设计思想

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 }

四.结果截图。

原文地址:https://www.cnblogs.com/tianxiayoujiu/p/7741533.html