简体   繁体   English

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

[英]How to get a random letter from a list of specific letters?

我已经开始编写一些JAVA代码,现在我想从给出的字母列表中得到一个随机字母,因此我应该使用该字母。

I'll take your question literally: 我将按字面意思回答您的问题:

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

Depending on several factors (are the letters contiguous, are you resizing the list dynamically), you may be able to use an array, or may not need a collection. 根据几个因素(字母是连续的,还是要动态调整列表的大小),您可能可以使用数组,也可能不需要集合。 See the Random class. 请参阅随机类。

Example: 例:

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

This snippet should be instructive: 此代码段应具有指导意义:

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

See also: 也可以看看:


If you want to do 3 letters at a time, then you can do something like this instead: 如果您想一次写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())
         );
      }
   }   
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Java:如何检查来自az的随机字母,至少10个字母中的2个字母应该是元音 - Java: How to check the random letters from a-z, out of 10 letters minimum 2 letter should be a vowels 如果三重奏中的字母重复,如何用字母表中的随机字符替换三重奏中的随机字母? - How to replace a random letter in a triple with a random character from the alphabet, if the letters in the triple are repeated? Java - 编码字符串/将随机(未使用)字母分配给特定字母 - Java - Encoding a string / Assigning a random (unused) letter to specific letters 如何在Java中随机写一封信? - How to get a random letter in Java? 从数组随机生成的三个特定字母 - Three specific letters random generated from array 如何获得多个随机字母输出? - How to get multiple outputs of random letters? 如何从Java中的列表中获取随机值 - How to get the random values from List in java> 如何从Lucene的特定字母开始获取记录 - How to get records starting with a specific letter in Lucene 从列表中获取以字母开头的元素 - Get element starting with letter from List 如何检索以JsonNode对象中的特定字母开头的JSON元素列表? - How to retrieve a list of JSON element that start with a specific letter from a JsonNode object?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM