【发布时间】:2019-02-07 16:32:41
【问题描述】:
有没有办法使用此代码生成随机字符串,但符号大小为 42?
public static final String RANDOM_STRING = UUID.randomUUID().toString();
【问题讨论】:
标签: java
有没有办法使用此代码生成随机字符串,但符号大小为 42?
public static final String RANDOM_STRING = UUID.randomUUID().toString();
【问题讨论】:
标签: java
不,您不能创建超过 36 个字符,因为 UUID 的长度为 128 位。更多信息可以在这里找到。
java.util.UUID.randomUUID().toString() length
如果需要,必须实现自己的功能来生成具有6 characters 的随机字符串。为此,您可以使用 Apache Commons Lang 包。然后将其与UUID 字符串连接起来。
【讨论】:
为了获得比通常生成的 36 个字符长度更长的任何字符的 UUID 的真正随机性,您可以从第二个生成的 UUID 中提取一段(无论您想要什么长度)。这可以在同一行代码中完成:
String RANDOM_STRING = UUID.randomUUID().toString() + "-" +
UUID.randomUUID().toString().substring(0, 5);
System.out.println("The UUID String is: " + RANDOM_STRING +
" and it is " + RANDOM_STRING.length() + " characters long.");
请记住……它不是真正的 UUID。
示例输出:
The UUID String is: c8e1aceb-ee63-49f5-bd95-e6f3eebced20-d5c39 and it is 42 characters long.
【讨论】: