3

プログラムがランダムな文字を生成するプログラムを作成する必要があり、このランダムな文字を配列に格納する必要があります

        char[] arrayRandom = new char[10];


        for (int i = 0; i < 8; i++) {
            randomNumLet = (generator.nextInt(20) + 1);
            System.out.print(arrayRandomLetter[randomNumLet] + " ");
            arrayRandomLetter[randomNumLet] = arrayRandom[i];
        }

私のコードに何か問題がありますか? これを実行して配列を印刷すると、配列内のすべての値のボックスが表示され、このコード行では印刷できない文字があるためです

            System.out.print(arrayRandomLetter[randomNumLet] + " ");

ありがとう

4

3 に答える 3

5

arrayRandomLetterから値の要素を割り当てていますarrayRandom。初期化しないarrayRandomため、その値はすべて 0 です。0 は印刷可能な文字の値ではないため、ボックスです。

ランダムな文字を選択する簡単な方法は次のとおりです。

String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char randomChar = chars.charAt(random.nextInt(chars.length()));
于 2010-06-14T04:42:52.933 に答える
1

arrayRandomLetter割り当てられる前に印刷しようとしています。

于 2010-06-14T04:45:21.480 に答える
0

私はあなたに答えを与えるつもりはありませんが、私はあなたにヒントを与えます:

(char)('A' + 1) is 'B'

@fastcodejavaの答えは、「ボックス」が表示される理由を説明しています-ASCII NUL文字をレンダリングしています。

@Mark Petersも正しいですが、それは最も簡単な解決策ではありません。

于 2010-06-14T05:02:42.253 に答える