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小时内删除。
发表评论