以下是我的代码的一部分:
// randomly create lowercase ASCII values
int rLowercase1 = random.nextInt(122) + 97;
// convert ASCII to text
System.out.print((char)rLowercase1);
当我运行程序时,它会显示符号而不是小写字母。有什么办法可以解决这个问题,以便显示小写字母吗?
答案 0 :(得分:4)
怎么样
rLowercase1 = 'a' + random.nextInt('z' - 'a' + 1);
可以使用'z' - 'a' + 1
= 25 + 1
= 26
计算字母表中的字母数。
由于random.nextInt(n)
将从范围[0; n)
返回值 - n
被排除在外 - 这意味着您可以将'a'+0
= 'a'
作为最小值并{ {1}} = 'a'+25
作为最大值。
换句话说,您的字符范围是'z'
到'a'
(包括两者)。
答案 1 :(得分:0)
将您的代码更改为:
int rLowercase1 = random.nextInt(26) + 97; // it will generate a-z
答案 2 :(得分:0)
只有26个小写字母:
int rLowercase1 = random.nextInt(26) + 97;
答案 3 :(得分:0)
如果您只想要26个不重音的拉丁字母,请更改122到26:
int rLowercase1 = random.nextInt(26) + 97;
如果这样写的话,我觉得这个意思更清楚一点:
int rLowercase1 = 'a' + random.nextInt(26);