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