Generating a random character out of any two in Java

故事扮演 提交于 2019-12-02 07:27:22

问题


How do I generate a random character between two specific characters? For e.g; I want to generate either one of 'h' or 'v'.

Thanks


回答1:


If you want to generate a character, as you say, either h or v, you can generate a random number using the Random class as shown here. If for instance the random number is greater than 0.5, then choose v, if otherwise, choose h.

On the other hand, if you have a range of letters, you can either generate an array with the characters you want and generate a random number which will be used as an index to choose the random letter, or else, you can generate random number between 65 (Aschii for A) and 90 (Aschii for Z). You can find more Aschii characters here




回答2:


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

N.B. construct your Random object once and re-use it; don't re-construct it every time you want a random number!




回答3:


how about:

import java.util.Random;


....

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



回答4:


To generate a random character between two given characters you could do the following:

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


来源:https://stackoverflow.com/questions/6167308/generating-a-random-character-out-of-any-two-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!