最简单的方法是什么?尽量减少任何进口。
这个不错:
String str = Long.toHexString(Double.doubleToLongBits(Math.random()));
但它并不完美,例如自定义长度会变得复杂。
还有一个选项:如何使这个字符串唯一?
最佳答案
创建一个可以包含在字符串中的字符的字符串:
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
使用 Random 类生成一个整数,并使用它从 String 中获取随机字符。
Random random = new Random();
alphabet.charAt(random.nextInt(alphabet.length()));
重复此操作 n 次,其中 n 是您的自定义长度,并将该字符附加到字符串。
StringBuilder builder = new StringBuilder(n);
for (int i = 0; i < n; i++) {
builder.append(/* The generated character */);
}
放在一起,这看起来像:
private static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
public String generateString(int length) {
Random random = new Random();
StringBuilder builder = new StringBuilder(length);
for (int i = 0; i < length; i++) {
builder.append(ALPHABET.charAt(random.nextInt(ALPHABET.length())));
}
return builder.toString();
}
关于java - 如何在java中生成自定义长度的随机字母数字字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701632/