Java 如何知道char类型变量打印的是字母还是数字?
我目前正在学习java。在一些实际问题中,当打印char变量时,它会打印一个整数。其他时候,它以Unicode格式打印由整数表示的实际字符 我目前的“理论”是,无论何时你与数字交互(例如,在字符中添加一个数字),它都会打印数字。然而,也有例外Java 如何知道char类型变量打印的是字母还是数字?,java,string,char,Java,String,Char,我目前正在学习java。在一些实际问题中,当打印char变量时,它会打印一个整数。其他时候,它以Unicode格式打印由整数表示的实际字符 我目前的“理论”是,无论何时你与数字交互(例如,在字符中添加一个数字),它都会打印数字。然而,也有例外 char c = 97; System.out.println(c); //Prints a (corresponding to lowercase a on ASCII chart) char v = 'H'; Sust
char c = 97;
System.out.println(c); //Prints a (corresponding to lowercase a on ASCII chart)
char v = 'H';
Sustem.out.println(v + 5); // Prints 77. Why doesn't it print the string "H5"
我希望H5的输出,但实际输出为77。H为72,ASCII十进制格式。加5=77。。为什么它打印77而不是
M
,是因为它在自动类型推断中找到了两者之间的公共类型。5是一个整数,因此字符首先转换为int,然后进行加法,结果是一个整数。想想为什么int+a浮点是一个浮点。在这种情况下,为什么char var='H';字符条='A';系统输出打印项次(bar+var)//打印137我假设它们之间的共同类型是图表。这里的问题是,算术表达式中的所有整数类型至少提升为int
,结果总是int
或long
,而不是char
或short
System.out.println(v+“5”)//将打印H5以便直接回答问题,将char
传递给println
始终显示相应的图形字符。但是,如果您对println
的参数是一个涉及char
s的算术表达式,那么实际上您传递的是int
,而不是char
,因此您得到了该int
的十进制表示形式。