在Java中生成任意两个随机字符

时间:2011-05-29 10:51:27

标签: java random range character

如何在两个特定字符之间生成随机字符?例如;我想生成'h'或'v'中的任何一个。

由于

4 个答案:

答案 0 :(得分:8)

Random r = new Random();
char c = r.nextBoolean() ? 'v' : 'h';

N.B。构造您的Random对象一次并重新使用它;每次你想要一个随机数时都不要重新构建它!

答案 1 :(得分:2)

如果您想生成一个字符,如您所说,h或v,您可以使用Random类生成一个随机数,如图所示here。如果例如随机数大于0.5,则选择v,否则选择h。

另一方面,如果你有一系列字母,你可以生成一个包含你想要的字符的数组,并生成一个随机数,用作选择随机字母的索引,否则,你可以生成65(Aschii for A)和90(Aschii for Z)之间的随机数。您可以找到更多Aschii字符here

答案 2 :(得分:1)

怎么样:

import java.util.Random;


....

Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(100);
char chosen = randomInt % 2 == 0 ? 'h' : 'v';

答案 3 :(得分:0)

要在两个给定字符之间生成随机字符,您可以执行以下操作:

   char genRandChar(char char1, char char2)
    {
       char retVal;

       int val1= (int) char1; //cast char1 to its integer ASCII value
       int val2= (int) char2; //cast char2 to its integer ASCII value

       //assuming val1<val2
       retVal=(char)(val1+(int)(Math.random()*((val2-val1)+1)); //generate a random number between val1 and val2 and cast it to a character
       return retVal;
    }