2010-03-20 4 views

ответ

6

Я возьму ваш вопрос буквально:

Random r = new Random(); // Keep this stored as a field 
List<Character> l = ...; // initialize this somewhere 
char c = l.get(r.nextInt(l.size())); 

В зависимости от нескольких факторов (являются буквы смежных, вы изменение размера списка динамически), вы можете использовать массив, или, возможно, не потребуется Коллекция. См. Класс Random.

Пример:

Random r = new Random(); // Keep this stored as a field 
List<Character> l = Arrays.asList('A', 'F', 'O', 'W', 'M', 'I', 'C', 'E'); 
char c = l.get(r.nextInt(l.size())); 
+0

Я не могу скомпилировать код выше вы можете дать мне образец, например, случайное письмо от AFOWMICE – Ivan

+0

@Ivan Вы не можете скомпилировать его, потому что вам нужно инициализировать список. После этого он будет скомпилирован, поэтому просто добавьте символы, которые вы хотите в список. –

1

Этот фрагмент должен быть поучительным:

import java.util.Random; 

public class RandomLetter { 
    static Random r = new Random(); 
    static char pickRandom(char... letters) { 
     return letters[r.nextInt(letters.length)]; 
    } 
    public static void main(String args[]) { 
     for (int i = 0; i < 10; i++) { 
     System.out.print(pickRandom('A', 'F', 'O', 'W', 'M', 'I', 'C', 'E')); 
     } 
    } 
} 

Смотрите также:


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

import java.util.Random; 

public class RandomLetter { 
    static Random r = new Random(); 
    static char pickRandom(char... letters) { 
     return letters[r.nextInt(letters.length)]; 
    } 

    public static void main(String args[]) { 
     for (int i = 0; i < 10; i++) { 
     System.out.println("" + 
      pickRandom("ACEGIKMOQSUWY".toCharArray()) + 
      pickRandom("BDFHJLNPRVXZ".toCharArray()) + 
      pickRandom("ABCDEFGHJKLMOPQRSTVWXYZ".toCharArray()) 
     ); 
     } 
    } 
}