1. ホーム
  2. java

Javaでランダムな文字を生成する機能はありますか?

2023-09-28 08:09:30

質問

Javaにはランダムな文字や文字列を生成する機能はあるのでしょうか? それとも、単にランダムな整数を選び、その整数のアスキーコードを文字に変換しなければならないのでしょうか?

どのように解決するのですか?

いろいろな方法がありますが、そうですね、ランダムに生成される 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 ).