生成随机字符串

随机数生成工具

1
2
3
4
5
6
import java.util.Random;

/**
* 伪随机数生成类
*/
private static final Random RANDOM = new Random();

获取随机数

1
2
3
4
5
6
7
8
/**
* 获取指定范围内的随机数
* @param value 随机数最大值+1
* @return [0,value)中的整数
*/
private static int getRandomNumber(int value){
return RANDOM.nextInt(value);
}

获取随机字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* 从str中获取随机字符串
* @param size 字符串长度
* @param str 字符来源集合
* @return 随机字符集合
*/
private static String getRandomString(int size,String str){
if (size <= 0 || str == null || str.length() <= 0){
return "";
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < size; i++) {
sb.append(
str.charAt(
getRandomNumber(str.length())));
}
return sb.toString();
}

交换字符位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* 交换字符位置
* @param chars 字符数组
* @param i 字符1
* @param j 字符2
*/
private static void swap(char[] chars,int i,int j){
if (i == j){
return;
}
char ch = chars[i];
chars[i] = chars[j];
chars[j] = ch;
}

乱序

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* 打乱字符串顺序
* @param str 字符串
* @return 乱序后的字符串
*/
private static String shuffleString(String str){
char[] chars = str.toCharArray();
// 参考自java.util.Collections.shuffle()
for (int i = chars.length; i > 1; i--) {
swap(chars, i-1, RANDOM.nextInt(i));
}
return String.valueOf(chars);
}