Java 有生成随机字符的功能吗?

新手上路,请多包涵

Java 有生成随机字符或字符串的功能吗?还是必须简单地选择一个随机整数并将该整数的 ascii 代码转换为字符?

原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 421
2 个回答

有很多方法可以做到这一点,但是是的,它涉及生成一个随机的 int (使用例如 java.util.Random.nextInt )然后使用它来映射到 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.util.Random 实际上是一个基于相当弱的 线性同余公式 随机数生成器。您提到了对密码学的需求;在这种情况下,您可能想要研究使用更强大的 加密安全伪随机数生成器(例如 java.security.SecureRandom )。

原文由 polygenelubricants 发布,翻译遵循 CC BY-SA 2.5 许可协议

在 az 中生成一个随机字符:

 Random r = new Random();
char c = (char)(r.nextInt(26) + 'a');

原文由 dogbane 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题