我刚刚执行了以下代码,
char a=5;
System.out.println(a);
在eclipse中执行时,print语句只打印一个方框。 它可能会给编译器错误吗?因为上面的代码没有任何意义..如果我错了,请纠正我。
答案 0 :(得分:5)
Java中的char
类型有两种含义。它是一个整数类型(char
的值可以是0到65535),但其目的是表示Unicode字符(至少是基本多语言平面中的字符)。如果用System.out.println
打印出来,程序将打印整数表示的字符,而不是整数本身。
因为它是一个整数类型,你可以为它分配一个整数。例如,由于字符'A'
由Unicode中的整数65表示,因此语句c = 65;
和c = 'A';
完全等效。
因此该计划没有任何违法行为。但是Unicode中的字符5(以前是ASCII格式)是一个"控制字符"当你打印它时,它并没有显示出来。
答案 1 :(得分:1)
代码是有道理的。
您正在使用Unicode代码点5(与ASCII code 5相同)创建一个字符,这是一个不可打印的字符。
在其他情况下(不打印它)这样做可能是有意义的,而且对于可打印的字符肯定是有道理的。
如果你想打印数字“五”,你可以
char a = '5'; // using a character literal
char b = 53; // using an integer literal (for the code point)
答案 2 :(得分:1)
char
是0到65535范围内的无符号整数(我认为;它的0xffff),它打印出与该数字对应的Unicode字符,假设您的计算机支持Unicode。值0到127(0x7f)对应于Unicode的原始前体(ASCII),0到255(0xff)是扩展的ASCII。
char
值已经是整数。你可以用它们算术。
答案 3 :(得分:1)
您正在将字符代码5分配给变量a
。看一下这个ASCII Table。 ASCII 5是不可打印的,例如,如果将此值更改为35,则会打印出#
。通过这种方式,Java(和其他语言)允许您对字符值执行算法。
char a = 35;
while (a < 100) {
System.out.println(a);
a++;
}
答案 4 :(得分:0)
println打印一个值或对象。打印单个字符是支持 - 请参阅https://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#print(char),因此没有编译错误的原因。
它打印ASCII值为5的字符,字体中没有任何表示,因此您可以看到方框。
答案 5 :(得分:0)
您正在为char数据类型分配一个整数值,并且它将打印随机符号,因为编译器无法获取char“a”值的值。
答案 6 :(得分:0)
char a=5;
完全有效。在Java中,字符不仅仅是单个字母,它也可以是ASCII字符的数字表示。 5是“查询”字符。如果设置char a = 126
,您将获得波形符。
答案 7 :(得分:0)
此代码中没有错误。您可以为char变量分配int值。如果您可以通过分配一些int值来创建for循环,那么您也可以看到其他一些字符而不是框。