2012-09-30 50 views
0

我有这样一段代码,其生成随机字符(ASCII)自动装箱的字符值,然后返回一个空值

public char getRandChar(){ return (char)rand.nextInt(27); } 

然后我就使用这个

System.out.println(new Character(getRandChar())); 
打印出来

但显然它返回空白值

+1

也许您正在获取非打印ASCII字符 – gtgaxiola

+3

您正在生成ASCII值介于0和26之间的字符,并且这些字符都是非打印字符。如果你的意图是打印一个字母的随机字母,那么你应该添加'A'到你的整数,而不是直接将它转换为(char)。 –

+0

@DavidWallace你是对的,它返回一个非打印字符,一个小问题,为什么要添加'A'?而不仅仅是这个? (char)rand.nextInt(25)+ 65? – KyelJmD

回答

3

这是因为rand.nextInt(27);正在返回不可打印的字符代码。例如,如果您将代码更改为return (char)65;,则这一点很明显。