java随机⽣成字符串和校验然后可以运⾏下我的程序代码,我的代码运⾏效果如下图:
接下来定义字符串
1 String a = "0123456789";                    // 数字
2 String b = "abcdefghijklmnopqrstuvwxyz";    // ⼩写字母
3 String c = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";    // ⼤写字母
4 String d = "~!@#$%^&*()_+=<>/,./;'[]{}|\\"; // 特殊字符
5 String result = "";
View Code
产⽣随机字符串
1 result = result + getRandomString(a, 2); // 数字
2 result = result + getRandomString(b, 5); // ⼩写字母
3 result = result + getRandomString(c, 5); // ⼤写字母
4 result = result + getRandomString(d, 1); // 特殊字符
5
6/**
7    *
8    * @输⼊参数:传递⼀个字符串传出字符串的长度
9  * @输出参数:随机传出⼀个指定长度的⼦字符串
10  *
11*/
12public static String getRandomString(String str, int length) {
13        Random random = new Random();
14        StringBuilder sb = new StringBuilder();
15for (int i = 0; i < length; i++) {
16int number = Int(str.length());
17            sb.append(str.charAt(number));
18        }
String();
20    }
View Code
产⽣的字符串位置顺序随机打乱
1 result = UnSort(result);  // 将字母顺序打乱
2/**
3    *
4    * @输⼊参数:传递⼀个字符串
5    * @输出参数:随机将传⼊的⼦字符串乱序后输出
6    *
7*/
8public static String UnSort(String str) {
9        List<String> lists = new ArrayList<>();
10        Random random = new Random();
11        StringBuffer sb = new StringBuffer();
12for (int i = 0; i < str.length(); i++) {
13            lists.add(str.substring(i, i + 1));
14        }
15while (!lists.isEmpty()) {
16int number = Int(lists.size());
17            sb.(number));
18            ve(number);
19        }
String();
21    }
View Code
对⽣成的字符串⽣成ASCII校验尾数,这个需与与接收⽅进⾏提前约定
1 result = ProCheck(result);
2/**
3    *
4    * @输⼊参数:传递⼀个字符串
5    * @输出参数:在该字符串最后加上字符的ASCII累加和校验
6    *
7*/
8private String ProCheck(String str) {
9int sum = 0;
10for (int i = 0; i < str.length(); i++) {
11            sum = sum + (int) str.charAt(i);
12        }
13return str + sum;
14    }
View Code
以线程⽅式刷新,没隔⼀秒产⽣⼀个字符串可以发送出去java生成随机数的方法
1public class MyRandom extends Thread {
2
3    @Override
4public void run() {
5while (true) {
6                    Calendar calendar = Instance();  // 当前时间
7              Time() + ":" + result);
8try {
9                        sleep(1000);
10                    } catch (InterruptedException ex) {
11                            Logger(Name()).log(Level.SEVERE, null, ex);
12            }
13        }
14 }
View Code
全部代码如下:
1import java.util.ArrayList;
2import java.util.Calendar;
3import java.util.List;
4import java.util.Random;
5import java.util.logging.Level;
6import java.util.logging.Logger;
7
8/**
9 *
10 * @author dpchenh
11*/
12public class MyRandom extends Thread {
13
14    @Override
15public void run() {
16// 没隔⼀秒⽣成⼀个随机字符串:该字符串包含2个数字 5个⼩写字母 5个⼤写字母 1个特殊字符前13位为字符位,后⾯位数为校验位17while (true) {
18            String a = "0123456789";                    // 数字
19            String b = "abcdefghijklmnopqrstuvwxyz";    // ⼩写字母
20            String c = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";    // ⼤写字母
21            String d = "~!@#$%^&*()_+=<>/,./;'[]{}|\\"; // 特殊字符
22            String result = "";
23// 加密算法获取随机数
24            result = result + getRandomString(a, 2); // 数字
25            result = result + getRandomString(b, 5); // ⼩写字母
26            result = result + getRandomString(c, 5); // ⼤写字母
27            result = result + getRandomString(d, 1); // 特殊字符
28            System.out.println("变序后sb:" + result);
29            result = UnSort(result);  // 将字母顺序打乱
30            result = ProCheck(result);
31            System.out.println("变序后sb:" + result);
32
33            Calendar calendar = Instance();  // 当前时间
34            Time() + ":" + result);
35try {
36                sleep(1000);
37            } catch (InterruptedException ex) {
38                Logger(Name()).log(Level.SEVERE, null, ex);
39            }
40        }
41    }
42
43/**
44    *
45    * @输⼊参数:传递⼀个字符串传出字符串的长度
46    * @输出参数:随机传出⼀个指定长度的⼦字符串
47    *
48*/
49public static String getRandomString(String str, int length) {
50        Random random = new Random();
51        StringBuilder sb = new StringBuilder();
52for (int i = 0; i < length; i++) {
53int number = Int(str.length());
54            sb.append(str.charAt(number));
55        }
String();
57    }
58
59/**
60    *
61    * @输⼊参数:传递⼀个字符串
62    * @输出参数:随机将传⼊的⼦字符串乱序后输出
63    *
64*/
65public static String UnSort(String str) {
66        List<String> lists = new ArrayList<>();
67        Random random = new Random();
68        StringBuffer sb = new StringBuffer();
69for (int i = 0; i < str.length(); i++) {
70            lists.add(str.substring(i, i + 1));
71        }
72while (!lists.isEmpty()) {
73int number = Int(lists.size());
74            sb.(number));
75            ve(number);
76        }
String();
78    }
79
80/**
81    *
82    * @输⼊参数:传递⼀个字符串
83    * @输出参数:在该字符串最后加上字符的ASCII累加和校验
84    *
85*/
86private String ProCheck(String str) {
87int sum = 0;
88for (int i = 0; i < str.length(); i++) {
89            sum = sum + (int) str.charAt(i);
90        }
91return str + sum;
92    }
93
94public static void main(String[] args) {
95        MyRandom random = new MyRandom();
96        random.start();
97    }
98 }
View Code

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。