Как получить случайное письмо из списка конкретных писем? - PullRequest
2 голосов
/ 20 марта 2010

Я начал писать некоторый код JAVA, и теперь я хочу получить случайную букву из списка приведенных букв, так что я должен использовать для этого.

Ответы [ 2 ]

6 голосов
/ 20 марта 2010

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

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 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()));   
1 голос
/ 20 марта 2010

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

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())
         );
      }
   }   
}
...