【发布时间】:2011-01-29 17:43:26
【问题描述】:
我已经开始编写一些 JAVA 代码,现在我想从给定的字母列表中获取一个随机字母,那么我应该用什么来做这个。
【问题讨论】:
我已经开始编写一些 JAVA 代码,现在我想从给定的字母列表中获取一个随机字母,那么我应该用什么来做这个。
【问题讨论】:
这个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())
);
}
}
}
【讨论】:
我会按字面意思回答你的问题:
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()));
【讨论】: