如何从特定字母列表中获取随机字母?

时间:2010-03-20 05:33:13

标签: java random letter

我已经开始编写一些JAVA代码,现在我想从给出的字母列表中随机抽取一封信,这样我应该使用什么呢。

2 个答案:

答案 0 :(得分: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()));   

答案 1 :(得分: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())
         );
      }
   }   
}