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 回答