java ASCII转换

时间:2013-11-02 16:09:47

标签: java ascii data-conversion

以下是我的代码的一部分:

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

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

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

4 个答案:

答案 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);