在Java中是否有生成随机字符的功能?
Java是否有任何功能来生成随机字符或字符串?或者必须简单地选择一个随机整数并将该整数的ascii代码转换为字符?
Java是否有任何功能来生成随机字符或字符串?或者必须简单地选择一个随机整数并将该整数的ascii代码转换为字符?
要在 a-z 中生成随机字符,
Random r = new Random();
char c = (char)(r.nextInt(26) + 'a');
有很多方法可以做到这一点,但是是的,它涉及生成一个随机(使用例如java.util.Random.nextInt
),然后用它来映射到.如果你有一个特定的字母表,那么这样的东西就很好了:int
char
import java.util.Random;
//...
Random r = new Random();
String alphabet = "123xyz";
for (int i = 0; i < 50; i++) {
System.out.println(alphabet.charAt(r.nextInt(alphabet.length())));
} // prints 50 random characters from alphabet
请注意,这实际上是一个基于相当弱的线性同余公式的伪随机数生成器。您提到了对密码学的需求;在这种情况下,您可能希望研究使用更强大的加密安全伪随机数生成器(例如java.security.SecureRandom
)。java.util.Random