Avatar ·

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

大家好!我正在编写一个小型应用程序,用于生成密码和临时标识符。需要创建只包含拉丁字母(a-z,A-Z)和数字(0-9)的随机字符串。例如,类似“k3R9tB2x”或“A7fD1qP8”这样的字符串。 我尝试过使用UUID,但它会生成带有连字符的字符串,而我不需要这些连字符。我尝试基于Math.random()编写自己的逻辑,但代码变得冗长且不可靠——有时只生成字母或只生成数字。以下是我编写的代码: ```java 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(); } ``` 这段代码可以工作,但我不确定它在性能和安全性方面是否正确。也许Java中有内置的方法可以用于此目的?