import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandomStringUtils {
public static String randomString(List<char[]> list, int size) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < size; i++) {
int key = (int) (new Random().nextDouble() * list.size());
int start = list.get(key)[0];
int end = list.get(key)[1];
int range = end - start;
char target = (char) ((new Random().nextDouble() * range) + start);
builder.append(target);
}
return builder.toString();
}
public static String unicode2String(String unicode) {
return (String.valueOf((char) Integer.parseInt(unicode, 16)));
}
public static void main(String[] args) {
List<char[]> range = new ArrayList<>();
// 希腊字符 Α ~ Ω 谁会想到 u03A2 是叛徒
range.add(new char[]{'Α', 'Ρ'});
range.add(new char[]{'Σ', 'Ω'});
// 希腊字符 α ~ ω
range.add(new char[]{'α', 'ω'});
// A ~ Z
range.add(new char[]{'A', 'Z'});
// a ~ z
range.add(new char[]{'a', 'z'});
// 0 ~ 9
range.add(new char[]{'0', '9'});
// 阿拉伯数字 ① ~ ⑳
// range.add(new char[]{'①', '⑳'});
// 阿拉伯数字 ❶ ~ ❿
// range.add(new char[]{'❶', '❿'});
// 阿拉伯数字 ⓫ ~ ⓴
// range.add(new char[]{'⓫', '⓴'});
// 阿拉伯数字 ⑴ ~ ⒇
// range.add(new char[]{'⑴', '⒇'});
System.out.println(randomString(range, 50));
}
}
后续再补充其他文字的unicode