私はいくつかのJAVAコードを書き始めましたが、与えられた文字のリストからランダムな文字を取得したいので、これには何を使用すればよいですか.
4821 次
2 に答える
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()));
于 2010-03-20T05:36:24.907 に答える
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())
);
}
}
}
于 2010-03-20T05:54:43.430 に答える