1

这是我的代码的一部分:

 // randomly create lowercase ASCII values
 int rLowercase1 = random.nextInt(122) + 97;

 // convert ASCII to text
 System.out.print((char)rLowercase1);

当我运行我的程序时,它会显示符号而不是小写字母。有什么办法可以解决这个问题,让它显示小写字母?

4

4 回答 4

4

怎么样

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'(都包括在内)。

于 2013-11-02T16:17:33.467 回答
0

将您的代码更改为:

int rLowercase1 = random.nextInt(26) + 97; // it will generate a-z
于 2013-11-02T16:11:53.603 回答
0

只有 26 个小写字母:

int rLowercase1 = random.nextInt(26) + 97;
于 2013-11-02T16:12:27.603 回答
0

如果您只想要 26 个无重音拉丁字母,请将 122 更改为 26:

int rLowercase1 = random.nextInt(26) + 97;

我觉得这样写的话意思会更清楚一点:

int rLowercase1 = 'a' + random.nextInt(26);
于 2013-11-02T16:12:54.747 回答