打印char类型没有任何结果

时间:2016-09-25 04:08:14

标签: java

我正在攻读Java认证。在我正在阅读的书中,它有一行写着:

char c = 65;
System.out.println(c); //Prints "A"

在下一个例子中这一行:

char seven = 7; //number, cause it's not in single quotes
System.out.println(seven); // doesn't print anything

我不明白为什么。有人可以解释一下吗?

4 个答案:

答案 0 :(得分:2)

将整数分配给char时,会将ASCII值设置为该字符。值为7的ASCII字符不可打印任何内容(BEL)。这就是为什么它不打印任何东西。

答案 1 :(得分:2)

char类型是UTF-16字符代码单元,整数是字符代码。对于ASCII,65是A,而7是BEL(或BELL),其中没有打印任何内容,但会发出可听见的声音。来自here

  

铃声字符是用于发出可听铃声或音调以便提醒用户的控制代码(ASCII 7,EBCDIC 2F)。 Bell字符是ASCII控制字符,代码7(^ G)。当它被发送到打印机或终端时,不打印任何内容,而是发出声音信号。

您还可以查看ASCII表here

答案 2 :(得分:1)

Java使用unicode来表示字符。称为ASCII的标准字符集始终为0到127,并且unicode添加了对支持其他国际语言所需的额外字符的支持。

link中给出的65-90是A-Z的代码,97-122是a-z的代码,也有其他字符的代码。玩这些数字,你的程序打印所有可打印的字符。由于ASCII 7不可打印,因此您的程序不会为第二个打印语句打印任何内容。

答案 3 :(得分:0)

您的字符数以十六进制表示,来自ASCII表。 你的“7”是一个“控制符号”。 他们没有象征。

看看桌子。 http://www.torsten-horn.de/techdocs/ascii.htm

“65”是您打印的A.