0
我有这样一段代码,其生成随机字符(ASCII)自动装箱的字符值,然后返回一个空值
public char getRandChar(){ return (char)rand.nextInt(27); }
然后我就使用这个
System.out.println(new Character(getRandChar()));
打印出来
但显然它返回空白值
我有这样一段代码,其生成随机字符(ASCII)自动装箱的字符值,然后返回一个空值
public char getRandChar(){ return (char)rand.nextInt(27); }
然后我就使用这个
System.out.println(new Character(getRandChar()));
打印出来
但显然它返回空白值
这是因为rand.nextInt(27);
正在返回不可打印的字符代码。例如,如果您将代码更改为return (char)65;
,则这一点很明显。
也许您正在获取非打印ASCII字符 – gtgaxiola
您正在生成ASCII值介于0和26之间的字符,并且这些字符都是非打印字符。如果你的意图是打印一个字母的随机字母,那么你应该添加'A'到你的整数,而不是直接将它转换为(char)。 –
@DavidWallace你是对的,它返回一个非打印字符,一个小问题,为什么要添加'A'?而不仅仅是这个? (char)rand.nextInt(25)+ 65? – KyelJmD