Генерация случайного символа из любых двух в Java - PullRequest
1 голос
/ 29 мая 2011

Как создать случайный символ между двумя конкретными символами?Например,Я хочу сгенерировать один из 'h' или 'v'.

Спасибо

Ответы [ 4 ]

8 голосов
/ 29 мая 2011
Random r = new Random();
char c = r.nextBoolean() ? 'v' : 'h';

Примечание: создайте ваш объект Random один раз и используйте его повторно;не восстанавливайте его каждый раз, когда вы хотите случайное число!

2 голосов
/ 29 мая 2011

Если вы хотите сгенерировать символ, как вы говорите, h или v, вы можете сгенерировать случайное число, используя класс Случайный , как показано здесь . Если, например, случайное число больше 0,5, выберите v, если нет, выберите h.

С другой стороны, если у вас есть диапазон букв, вы можете сгенерировать массив с нужными вам символами и сгенерировать случайное число, которое будет использоваться в качестве индекса для выбора случайной буквы, или вы можете сгенерировать случайное число от 65 (Аши для А) до 90 (Аши для Z). Вы можете найти больше символов Aschii здесь

1 голос
/ 29 мая 2011

как насчет:

import java.util.Random;


....

Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(100);
char chosen = randomInt % 2 == 0 ? 'h' : 'v';
0 голосов
/ 29 мая 2011

Чтобы сгенерировать случайный символ между двумя заданными символами, вы можете сделать следующее:

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