【问题标题】:How to get a random letter from a list of specific letters?如何从特定字母列表中获取随机字母?
【发布时间】:2011-01-29 17:43:26
【问题描述】:

我已经开始编写一些 JAVA 代码,现在我想从给定的字母列表中获取一个随机字母,那么我应该用什么来做这个。

【问题讨论】:

    标签: java random letter


    【解决方案1】:

    这个sn-p应该是有指导意义的:

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

    【讨论】:

      【解决方案2】:

      我会按字面意思回答你的问题:

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

      【讨论】:

      • 我无法编译上面的代码,你能给我一个示例,例如来自 A F O W M I C E 的随机字母
      • @Ivan 无法编译,因为需要初始化列表。之后,它将编译,所以只需将您想要的字符添加到列表中。
      猜你喜欢
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 2013-06-29
      • 1970-01-01
      • 2023-02-04
      • 2019-04-16
      • 2015-05-03
      相关资源
      最近更新 更多