Avatar ·

如何在Java中生成随机字母数字字符串?

大家好!我需要帮助生成一个只包含数字和字母(拉丁字母,不区分大小写)的随机字符串。我正在编写一个小型应用程序,用于生成密码和验证码。 我尝试过使用 `Math.random()` 和字符拼接,但代码变得又丑又不可靠。以下是我现有的代码: ```java public static String generateRandomString(int length) { String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { int index = (int) (Math.random() * chars.length()); sb.append(chars.charAt(index)); } return sb.toString(); } ``` 这能工作,但我对使用 `Math.random()` 感到不安——我听说这不是最安全的加密方式。此外,有时会出现重复的模式,这很奇怪。 请告诉我如何在Java中正确生成随机字母数字字符串?需要满足:1