JAVA: хранение ввода в массив - PullRequest
3 голосов
/ 14 июня 2010

Мне нужно написать программу, в которой программа будет генерировать случайные буквы, и мне нужно будет сохранить этот случайный символ в массиве

        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] + " ");

Спасибо

Ответы [ 3 ]

5 голосов
/ 14 июня 2010

Вы присваиваете элементу arrayRandomLetter значение из arrayRandom. Поскольку вы никогда не инициализируете arrayRandom, все его значения равны 0. 0 не является значением печатаемого символа, поэтому поля.

Простой способ выбрать случайного персонажа выглядит так:

String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char randomChar = chars.charAt(random.nextInt(chars.length()));
1 голос
/ 14 июня 2010

Вы пытаетесь напечатать arrayRandomLetter до его назначения.

0 голосов
/ 14 июня 2010

Я не собираюсь давать вам ответ, но я дам вам подсказку:

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

@ ответ fastcodejava объясняет, почему вы видите «коробки» - рендеринг символа ASCII NUL.

@ Марк Питерс тоже прав, но это не самое простое решение.

...