2010-06-14 2 views
3

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

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

Благодарности

ответ

5

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

Простой способ выбрать случайный характер, как это:

String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
char randomChar = chars.charAt(random.nextInt(chars.length())); 
+0

Итак, как инициализировать arrayRandom? не должен быть пустым массивом, так как я собираюсь хранить значения внутри? – Jann

+0

Я не знаю, вы собираетесь хранить ценности внутри? Вы, конечно, не указали на намерение сделать это на основе вашего кода (подсказка: где в вашем коде создается массивRandom на стороне LEFT задания?) –

+0

oh я получаю то, что вы говорите уже , если я хочу добавить значение внутри массива i должно лежать только на левой стороне, а не на правой стороне? спасибо большое =) – Jann

1

Вы пытаетесь напечатать arrayRandomLetter, прежде чем он назначен.

+1

Это тоже, хотя переключение линий не изменило бы :-) –

+1

@Mark - выход был бы другим (8 пробелов). Это неверно, но это ** **. –

+1

Я уже назначил arrayRandomletter, поместив буквы внутри массива и извините, что массив должен быть 8, а не 10 – Jann

0

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

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

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

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

Смежные вопросы