如何在java中获得随机字母?

aelbi1ox  于 2021-06-30  发布在  Java
关注(0)|答案(4)|浏览(473)

我想随机得到一封信

char ch = 'A' + randomNumber ;  // randomNumber is int from 0 to 25

但这会导致“精度损失”编译错误(如果randomnumber只有一个字节,则相同)。我想对于unicode来说,上面的内容过于简单化了。
这是可行的,但似乎有点笨拙:

char ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(randomNumber);

我该怎么做?

mwyxok5s

mwyxok5s1#

这个怎么样?难看的铸造,但没有编译错误。应生成随机大写字母:

int rand = (int) (Math.random() * 100);
int i = 65 + (rand % 26);
char c = (char) i;
System.out.println(c);
rqenqsqc

rqenqsqc2#

char ch = (char) (new Random().nextInt('Z' - 'A' + 1) + 'A') 你可以用任何你想达到更大范围的字符来代替“a”和“z”。

zkure5ic

zkure5ic3#

问题是由于试图分配 int 变成一个 char .
自从 int 是32位和 char 是16位,分配 int 可能导致精度损失,因此在编译时显示错误消息。

3df52oht

3df52oht4#

如果你知道你会在适当的范围内,就投:

char ch = (char) ('A' + randomNumber);

相关问题