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

发布于 2024-11-10 14:47:28 字数 53 浏览 7 评论 0原文

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

谢谢

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

会傲 2024-11-17 14:47:28
Random r = new Random();
char c = r.nextBoolean() ? 'v' : 'h';

注意:构造一次 Random 对象并重复使用它;不要每次需要随机数时都重新构造它!

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!

俏︾媚 2024-11-17 14:47:28

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

另一方面,如果您有一系列字母,您可以生成一个包含所需字符的数组并生成一个随机数,该随机数将用作选择随机字母的索引,或者,您可以生成随机数介于 65(A 的 Aschii)和 90(Z 的 Aschii)之间。您可以在此处找到更多 Aschii 字符

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

霞映澄塘 2024-11-17 14:47:28

怎么样:

import java.util.Random;


....

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

how about:

import java.util.Random;


....

Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(100);
char chosen = randomInt % 2 == 0 ? 'h' : 'v';
微暖i 2024-11-17 14:47:28

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

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

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;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文